diff --git a/.gitmodules b/.gitmodules
index a5cf3aaaee0ea3b77fd832d4531718cb5c812ffe..434d01b3d5f2b78e9fa1238ada88c8275ae688ed 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -12,3 +12,6 @@
 [submodule "third_party/gflags"]
 	path = third_party/gflags
 	url = https://github.com/gflags/gflags.git
+[submodule "third_party/googletest"]
+	path = third_party/googletest
+	url = git://github.com/google/googletest
diff --git a/BUILD b/BUILD
index 7eb59797d434b231adbc0eaa2cd47db4e55aeb99..25b26b7b24440d08d13d4e54c8a5d1b215f08331 100644
--- a/BUILD
+++ b/BUILD
@@ -143,7 +143,7 @@ cc_library(
     "src/core/tsi/ssl_transport_security.h",
     "src/core/tsi/transport_security.h",
     "src/core/tsi/transport_security_interface.h",
-    "src/core/channel/census_filter.h",
+    "src/core/census/grpc_filter.h",
     "src/core/channel/channel_args.h",
     "src/core/channel/channel_stack.h",
     "src/core/channel/client_channel.h",
@@ -209,6 +209,8 @@ cc_library(
     "src/core/json/json_writer.h",
     "src/core/profiling/timers.h",
     "src/core/profiling/timers_preciseclock.h",
+    "src/core/statistics/census_interface.h",
+    "src/core/statistics/census_rpc_stats.h",
     "src/core/surface/byte_buffer_queue.h",
     "src/core/surface/call.h",
     "src/core/surface/channel.h",
@@ -267,6 +269,7 @@ cc_library(
     "src/core/tsi/ssl_transport_security.c",
     "src/core/tsi/transport_security.c",
     "src/core/census/grpc_context.c",
+    "src/core/census/grpc_filter.c",
     "src/core/channel/channel_args.c",
     "src/core/channel/channel_stack.c",
     "src/core/channel/client_channel.c",
@@ -409,7 +412,7 @@ cc_library(
 cc_library(
   name = "grpc_unsecure",
   srcs = [
-    "src/core/channel/census_filter.h",
+    "src/core/census/grpc_filter.h",
     "src/core/channel/channel_args.h",
     "src/core/channel/channel_stack.h",
     "src/core/channel/client_channel.h",
@@ -475,6 +478,8 @@ cc_library(
     "src/core/json/json_writer.h",
     "src/core/profiling/timers.h",
     "src/core/profiling/timers_preciseclock.h",
+    "src/core/statistics/census_interface.h",
+    "src/core/statistics/census_rpc_stats.h",
     "src/core/surface/byte_buffer_queue.h",
     "src/core/surface/call.h",
     "src/core/surface/channel.h",
@@ -513,6 +518,7 @@ cc_library(
     "src/core/census/rpc_stat_id.h",
     "src/core/surface/init_unsecure.c",
     "src/core/census/grpc_context.c",
+    "src/core/census/grpc_filter.c",
     "src/core/channel/channel_args.c",
     "src/core/channel/channel_stack.c",
     "src/core/channel/client_channel.c",
@@ -675,8 +681,11 @@ cc_library(
     "src/cpp/client/secure_credentials.h",
     "src/cpp/common/secure_auth_context.h",
     "src/cpp/server/secure_server_credentials.h",
-    "src/cpp/client/channel.h",
+    "src/cpp/client/create_channel_internal.h",
     "src/cpp/common/create_auth_context.h",
+    "src/cpp/server/dynamic_thread_pool.h",
+    "src/cpp/server/fixed_size_thread_pool.h",
+    "src/cpp/server/thread_pool_interface.h",
     "src/cpp/client/secure_channel_arguments.cc",
     "src/cpp/client/secure_credentials.cc",
     "src/cpp/common/auth_property_iterator.cc",
@@ -687,10 +696,10 @@ cc_library(
     "src/cpp/client/channel_arguments.cc",
     "src/cpp/client/client_context.cc",
     "src/cpp/client/create_channel.cc",
+    "src/cpp/client/create_channel_internal.cc",
     "src/cpp/client/credentials.cc",
     "src/cpp/client/generic_stub.cc",
     "src/cpp/client/insecure_credentials.cc",
-    "src/cpp/client/internal_stub.cc",
     "src/cpp/common/call.cc",
     "src/cpp/common/completion_queue.cc",
     "src/cpp/common/rpc_method.cc",
@@ -707,28 +716,20 @@ cc_library(
     "src/cpp/util/byte_buffer.cc",
     "src/cpp/util/slice.cc",
     "src/cpp/util/status.cc",
+    "src/cpp/util/string_ref.cc",
     "src/cpp/util/time.cc",
   ],
   hdrs = [
-    "include/grpc++/async_generic_service.h",
-    "include/grpc++/async_unary_call.h",
-    "include/grpc++/auth_context.h",
-    "include/grpc++/byte_buffer.h",
-    "include/grpc++/channel_arguments.h",
-    "include/grpc++/channel_interface.h",
+    "include/grpc++/channel.h",
     "include/grpc++/client_context.h",
     "include/grpc++/completion_queue.h",
-    "include/grpc++/config.h",
-    "include/grpc++/config_protobuf.h",
     "include/grpc++/create_channel.h",
     "include/grpc++/credentials.h",
-    "include/grpc++/dynamic_thread_pool.h",
-    "include/grpc++/fixed_size_thread_pool.h",
-    "include/grpc++/generic_stub.h",
+    "include/grpc++/generic/async_generic_service.h",
+    "include/grpc++/generic/generic_stub.h",
     "include/grpc++/impl/call.h",
     "include/grpc++/impl/client_unary_call.h",
     "include/grpc++/impl/grpc_library.h",
-    "include/grpc++/impl/internal_stub.h",
     "include/grpc++/impl/proto_utils.h",
     "include/grpc++/impl/rpc_method.h",
     "include/grpc++/impl/rpc_service_method.h",
@@ -744,13 +745,20 @@ cc_library(
     "include/grpc++/server_builder.h",
     "include/grpc++/server_context.h",
     "include/grpc++/server_credentials.h",
-    "include/grpc++/slice.h",
-    "include/grpc++/status.h",
-    "include/grpc++/status_code_enum.h",
-    "include/grpc++/stream.h",
-    "include/grpc++/stub_options.h",
-    "include/grpc++/thread_pool_interface.h",
-    "include/grpc++/time.h",
+    "include/grpc++/support/async_stream.h",
+    "include/grpc++/support/async_unary_call.h",
+    "include/grpc++/support/auth_context.h",
+    "include/grpc++/support/byte_buffer.h",
+    "include/grpc++/support/channel_arguments.h",
+    "include/grpc++/support/config.h",
+    "include/grpc++/support/config_protobuf.h",
+    "include/grpc++/support/slice.h",
+    "include/grpc++/support/status.h",
+    "include/grpc++/support/status_code_enum.h",
+    "include/grpc++/support/string_ref.h",
+    "include/grpc++/support/stub_options.h",
+    "include/grpc++/support/sync_stream.h",
+    "include/grpc++/support/time.h",
   ],
   includes = [
     "include",
@@ -767,17 +775,20 @@ cc_library(
 cc_library(
   name = "grpc++_unsecure",
   srcs = [
-    "src/cpp/client/channel.h",
+    "src/cpp/client/create_channel_internal.h",
     "src/cpp/common/create_auth_context.h",
+    "src/cpp/server/dynamic_thread_pool.h",
+    "src/cpp/server/fixed_size_thread_pool.h",
+    "src/cpp/server/thread_pool_interface.h",
     "src/cpp/common/insecure_create_auth_context.cc",
     "src/cpp/client/channel.cc",
     "src/cpp/client/channel_arguments.cc",
     "src/cpp/client/client_context.cc",
     "src/cpp/client/create_channel.cc",
+    "src/cpp/client/create_channel_internal.cc",
     "src/cpp/client/credentials.cc",
     "src/cpp/client/generic_stub.cc",
     "src/cpp/client/insecure_credentials.cc",
-    "src/cpp/client/internal_stub.cc",
     "src/cpp/common/call.cc",
     "src/cpp/common/completion_queue.cc",
     "src/cpp/common/rpc_method.cc",
@@ -794,28 +805,20 @@ cc_library(
     "src/cpp/util/byte_buffer.cc",
     "src/cpp/util/slice.cc",
     "src/cpp/util/status.cc",
+    "src/cpp/util/string_ref.cc",
     "src/cpp/util/time.cc",
   ],
   hdrs = [
-    "include/grpc++/async_generic_service.h",
-    "include/grpc++/async_unary_call.h",
-    "include/grpc++/auth_context.h",
-    "include/grpc++/byte_buffer.h",
-    "include/grpc++/channel_arguments.h",
-    "include/grpc++/channel_interface.h",
+    "include/grpc++/channel.h",
     "include/grpc++/client_context.h",
     "include/grpc++/completion_queue.h",
-    "include/grpc++/config.h",
-    "include/grpc++/config_protobuf.h",
     "include/grpc++/create_channel.h",
     "include/grpc++/credentials.h",
-    "include/grpc++/dynamic_thread_pool.h",
-    "include/grpc++/fixed_size_thread_pool.h",
-    "include/grpc++/generic_stub.h",
+    "include/grpc++/generic/async_generic_service.h",
+    "include/grpc++/generic/generic_stub.h",
     "include/grpc++/impl/call.h",
     "include/grpc++/impl/client_unary_call.h",
     "include/grpc++/impl/grpc_library.h",
-    "include/grpc++/impl/internal_stub.h",
     "include/grpc++/impl/proto_utils.h",
     "include/grpc++/impl/rpc_method.h",
     "include/grpc++/impl/rpc_service_method.h",
@@ -831,13 +834,20 @@ cc_library(
     "include/grpc++/server_builder.h",
     "include/grpc++/server_context.h",
     "include/grpc++/server_credentials.h",
-    "include/grpc++/slice.h",
-    "include/grpc++/status.h",
-    "include/grpc++/status_code_enum.h",
-    "include/grpc++/stream.h",
-    "include/grpc++/stub_options.h",
-    "include/grpc++/thread_pool_interface.h",
-    "include/grpc++/time.h",
+    "include/grpc++/support/async_stream.h",
+    "include/grpc++/support/async_unary_call.h",
+    "include/grpc++/support/auth_context.h",
+    "include/grpc++/support/byte_buffer.h",
+    "include/grpc++/support/channel_arguments.h",
+    "include/grpc++/support/config.h",
+    "include/grpc++/support/config_protobuf.h",
+    "include/grpc++/support/slice.h",
+    "include/grpc++/support/status.h",
+    "include/grpc++/support/status_code_enum.h",
+    "include/grpc++/support/string_ref.h",
+    "include/grpc++/support/stub_options.h",
+    "include/grpc++/support/sync_stream.h",
+    "include/grpc++/support/time.h",
   ],
   includes = [
     "include",
@@ -854,8 +864,8 @@ cc_library(
 cc_library(
   name = "grpc_plugin_support",
   srcs = [
-    "include/grpc++/config.h",
-    "include/grpc++/config_protobuf.h",
+    "include/grpc++/support/config.h",
+    "include/grpc++/support/config_protobuf.h",
     "src/compiler/config.h",
     "src/compiler/cpp_generator.h",
     "src/compiler/cpp_generator_helpers.h",
@@ -1017,6 +1027,7 @@ objc_library(
     "src/core/tsi/ssl_transport_security.c",
     "src/core/tsi/transport_security.c",
     "src/core/census/grpc_context.c",
+    "src/core/census/grpc_filter.c",
     "src/core/channel/channel_args.c",
     "src/core/channel/channel_stack.c",
     "src/core/channel/client_channel.c",
@@ -1156,7 +1167,7 @@ objc_library(
     "src/core/tsi/ssl_transport_security.h",
     "src/core/tsi/transport_security.h",
     "src/core/tsi/transport_security_interface.h",
-    "src/core/channel/census_filter.h",
+    "src/core/census/grpc_filter.h",
     "src/core/channel/channel_args.h",
     "src/core/channel/channel_stack.h",
     "src/core/channel/client_channel.h",
@@ -1222,6 +1233,8 @@ objc_library(
     "src/core/json/json_writer.h",
     "src/core/profiling/timers.h",
     "src/core/profiling/timers_preciseclock.h",
+    "src/core/statistics/census_interface.h",
+    "src/core/statistics/census_rpc_stats.h",
     "src/core/surface/byte_buffer_queue.h",
     "src/core/surface/call.h",
     "src/core/surface/channel.h",
diff --git a/INSTALL b/INSTALL
index 808166dfedec9e68cbc27d7fd2663c216d054a84..d183fceb9ae41031bd12eeb3df6d6dbec96e4b67 100644
--- a/INSTALL
+++ b/INSTALL
@@ -9,25 +9,40 @@ wiki pages:
 * If you are in a hurry *
 *************************
 
+On Linux (Debian):
+
+ Note: you will need to add the Debian 'unstable' distribution to your sources
+ file first.
+
+ Add the following line to your `/etc/apt/sources.list` file:
+
+   deb http://ftp.us.debian.org/debian unstable main contrib non-free
+
+ Install the gRPC library:
+
+ $ [sudo] apt-get install libgrpc-dev
+
+OR
+
  $ git clone https://github.com/grpc/grpc.git
  $ cd grpc
  $ git submodule update --init
  $ make 
- $ sudo make install
+ $ [sudo] make install
 
 You don't need anything else than GNU Make, gcc and autotools. Under a Debian
 or Ubuntu system, this should boil down to the following packages:
 
-  $ apt-get install build-essential autoconf libtool
+ $ [sudo] apt-get install build-essential autoconf libtool
 
 Building the python wrapper requires the following:
 
-  # apt-get install python-all-dev python-virtualenv
+ $ [sudo] apt-get install python-all-dev python-virtualenv
 
 If you want to install in a different directory than the default /usr/lib, you can
 override it on the command line:
 
-  # make install prefix=/opt
+ $ [sudo] make install prefix=/opt
 
 
 *******************************
diff --git a/Makefile b/Makefile
index d254fd6ecbf80890bbf1c1294d200b75f505372b..6d857c588b6e6e2ecded7f6aafd6a578d341946e 100644
--- a/Makefile
+++ b/Makefile
@@ -299,11 +299,7 @@ LIBS = m z pthread
 LDFLAGS += -pthread
 endif
 
-ifneq ($(wildcard /usr/src/gtest/src/gtest-all.cc),)
-GTEST_LIB = /usr/src/gtest/src/gtest-all.cc -I/usr/src/gtest
-else
-GTEST_LIB = -lgtest
-endif
+GTEST_LIB = -Ithird_party/googletest/include -Ithird_party/googletest third_party/googletest/src/gtest-all.cc
 GTEST_LIB += -lgflags
 ifeq ($(V),1)
 E = @:
@@ -612,6 +608,8 @@ PROTOBUF_PKG_CONFIG = false
 PC_REQUIRES_GRPCXX =
 PC_LIBS_GRPCXX =
 
+CPPFLAGS := -Ithird_party/googletest/include $(CPPFLAGS)
+
 ifeq ($(HAS_SYSTEM_PROTOBUF),true)
 ifeq ($(HAS_PKG_CONFIG),true)
 PROTOBUF_PKG_CONFIG = true
@@ -784,6 +782,7 @@ bin_encoder_test: $(BINDIR)/$(CONFIG)/bin_encoder_test
 chttp2_status_conversion_test: $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test
 chttp2_stream_encoder_test: $(BINDIR)/$(CONFIG)/chttp2_stream_encoder_test
 chttp2_stream_map_test: $(BINDIR)/$(CONFIG)/chttp2_stream_map_test
+compression_test: $(BINDIR)/$(CONFIG)/compression_test
 dualstack_socket_test: $(BINDIR)/$(CONFIG)/dualstack_socket_test
 fd_conservation_posix_test: $(BINDIR)/$(CONFIG)/fd_conservation_posix_test
 fd_posix_test: $(BINDIR)/$(CONFIG)/fd_posix_test
@@ -792,6 +791,7 @@ fling_server: $(BINDIR)/$(CONFIG)/fling_server
 fling_stream_test: $(BINDIR)/$(CONFIG)/fling_stream_test
 fling_test: $(BINDIR)/$(CONFIG)/fling_test
 gen_hpack_tables: $(BINDIR)/$(CONFIG)/gen_hpack_tables
+gen_legal_metadata_characters: $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters
 gpr_cmdline_test: $(BINDIR)/$(CONFIG)/gpr_cmdline_test
 gpr_env_test: $(BINDIR)/$(CONFIG)/gpr_env_test
 gpr_file_test: $(BINDIR)/$(CONFIG)/gpr_file_test
@@ -810,6 +810,7 @@ gpr_useful_test: $(BINDIR)/$(CONFIG)/gpr_useful_test
 grpc_auth_context_test: $(BINDIR)/$(CONFIG)/grpc_auth_context_test
 grpc_base64_test: $(BINDIR)/$(CONFIG)/grpc_base64_test
 grpc_byte_buffer_reader_test: $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test
+grpc_channel_args_test: $(BINDIR)/$(CONFIG)/grpc_channel_args_test
 grpc_channel_stack_test: $(BINDIR)/$(CONFIG)/grpc_channel_stack_test
 grpc_completion_queue_test: $(BINDIR)/$(CONFIG)/grpc_completion_queue_test
 grpc_create_jwt: $(BINDIR)/$(CONFIG)/grpc_create_jwt
@@ -860,10 +861,9 @@ client_crash_test_server: $(BINDIR)/$(CONFIG)/client_crash_test_server
 credentials_test: $(BINDIR)/$(CONFIG)/credentials_test
 cxx_byte_buffer_test: $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test
 cxx_slice_test: $(BINDIR)/$(CONFIG)/cxx_slice_test
+cxx_string_ref_test: $(BINDIR)/$(CONFIG)/cxx_string_ref_test
 cxx_time_test: $(BINDIR)/$(CONFIG)/cxx_time_test
-dynamic_thread_pool_test: $(BINDIR)/$(CONFIG)/dynamic_thread_pool_test
 end2end_test: $(BINDIR)/$(CONFIG)/end2end_test
-fixed_size_thread_pool_test: $(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test
 generic_end2end_test: $(BINDIR)/$(CONFIG)/generic_end2end_test
 grpc_cli: $(BINDIR)/$(CONFIG)/grpc_cli
 grpc_cpp_plugin: $(BINDIR)/$(CONFIG)/grpc_cpp_plugin
@@ -888,6 +888,7 @@ reconnect_interop_server: $(BINDIR)/$(CONFIG)/reconnect_interop_server
 secure_auth_context_test: $(BINDIR)/$(CONFIG)/secure_auth_context_test
 server_crash_test: $(BINDIR)/$(CONFIG)/server_crash_test
 server_crash_test_client: $(BINDIR)/$(CONFIG)/server_crash_test_client
+shutdown_test: $(BINDIR)/$(CONFIG)/shutdown_test
 status_test: $(BINDIR)/$(CONFIG)/status_test
 sync_streaming_ping_pong_test: $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test
 sync_unary_ping_pong_test: $(BINDIR)/$(CONFIG)/sync_unary_ping_pong_test
@@ -1729,9 +1730,9 @@ endif
 
 buildtests: buildtests_c buildtests_cxx buildtests_zookeeper
 
-buildtests_c: privatelibs_c $(BINDIR)/$(CONFIG)/alarm_heap_test $(BINDIR)/$(CONFIG)/alarm_list_test $(BINDIR)/$(CONFIG)/alarm_test $(BINDIR)/$(CONFIG)/alpn_test $(BINDIR)/$(CONFIG)/bin_encoder_test $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test $(BINDIR)/$(CONFIG)/chttp2_stream_encoder_test $(BINDIR)/$(CONFIG)/chttp2_stream_map_test $(BINDIR)/$(CONFIG)/dualstack_socket_test $(BINDIR)/$(CONFIG)/fd_conservation_posix_test $(BINDIR)/$(CONFIG)/fd_posix_test $(BINDIR)/$(CONFIG)/fling_client $(BINDIR)/$(CONFIG)/fling_server $(BINDIR)/$(CONFIG)/fling_stream_test $(BINDIR)/$(CONFIG)/fling_test $(BINDIR)/$(CONFIG)/gpr_cmdline_test $(BINDIR)/$(CONFIG)/gpr_env_test $(BINDIR)/$(CONFIG)/gpr_file_test $(BINDIR)/$(CONFIG)/gpr_histogram_test $(BINDIR)/$(CONFIG)/gpr_host_port_test $(BINDIR)/$(CONFIG)/gpr_log_test $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test $(BINDIR)/$(CONFIG)/gpr_slice_test $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test $(BINDIR)/$(CONFIG)/gpr_string_test $(BINDIR)/$(CONFIG)/gpr_sync_test $(BINDIR)/$(CONFIG)/gpr_thd_test $(BINDIR)/$(CONFIG)/gpr_time_test $(BINDIR)/$(CONFIG)/gpr_tls_test $(BINDIR)/$(CONFIG)/gpr_useful_test $(BINDIR)/$(CONFIG)/grpc_auth_context_test $(BINDIR)/$(CONFIG)/grpc_base64_test $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test $(BINDIR)/$(CONFIG)/grpc_channel_stack_test $(BINDIR)/$(CONFIG)/grpc_completion_queue_test $(BINDIR)/$(CONFIG)/grpc_credentials_test $(BINDIR)/$(CONFIG)/grpc_json_token_test $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test $(BINDIR)/$(CONFIG)/grpc_security_connector_test $(BINDIR)/$(CONFIG)/grpc_stream_op_test $(BINDIR)/$(CONFIG)/hpack_parser_test $(BINDIR)/$(CONFIG)/hpack_table_test $(BINDIR)/$(CONFIG)/httpcli_format_request_test $(BINDIR)/$(CONFIG)/httpcli_parser_test $(BINDIR)/$(CONFIG)/httpcli_test $(BINDIR)/$(CONFIG)/json_rewrite $(BINDIR)/$(CONFIG)/json_rewrite_test $(BINDIR)/$(CONFIG)/json_test $(BINDIR)/$(CONFIG)/lame_client_test $(BINDIR)/$(CONFIG)/message_compress_test $(BINDIR)/$(CONFIG)/multi_init_test $(BINDIR)/$(CONFIG)/multiple_server_queues_test $(BINDIR)/$(CONFIG)/murmur_hash_test $(BINDIR)/$(CONFIG)/no_server_test $(BINDIR)/$(CONFIG)/resolve_address_test $(BINDIR)/$(CONFIG)/secure_endpoint_test $(BINDIR)/$(CONFIG)/sockaddr_utils_test $(BINDIR)/$(CONFIG)/tcp_client_posix_test $(BINDIR)/$(CONFIG)/tcp_posix_test $(BINDIR)/$(CONFIG)/tcp_server_posix_test $(BINDIR)/$(CONFIG)/time_averaged_stats_test $(BINDIR)/$(CONFIG)/timeout_encoding_test $(BINDIR)/$(CONFIG)/timers_test $(BINDIR)/$(CONFIG)/transport_metadata_test $(BINDIR)/$(CONFIG)/transport_security_test $(BINDIR)/$(CONFIG)/udp_server_test $(BINDIR)/$(CONFIG)/uri_parser_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test
+buildtests_c: privatelibs_c $(BINDIR)/$(CONFIG)/alarm_heap_test $(BINDIR)/$(CONFIG)/alarm_list_test $(BINDIR)/$(CONFIG)/alarm_test $(BINDIR)/$(CONFIG)/alpn_test $(BINDIR)/$(CONFIG)/bin_encoder_test $(BINDIR)/$(CONFIG)/chttp2_status_conversion_test $(BINDIR)/$(CONFIG)/chttp2_stream_encoder_test $(BINDIR)/$(CONFIG)/chttp2_stream_map_test $(BINDIR)/$(CONFIG)/compression_test $(BINDIR)/$(CONFIG)/dualstack_socket_test $(BINDIR)/$(CONFIG)/fd_conservation_posix_test $(BINDIR)/$(CONFIG)/fd_posix_test $(BINDIR)/$(CONFIG)/fling_client $(BINDIR)/$(CONFIG)/fling_server $(BINDIR)/$(CONFIG)/fling_stream_test $(BINDIR)/$(CONFIG)/fling_test $(BINDIR)/$(CONFIG)/gpr_cmdline_test $(BINDIR)/$(CONFIG)/gpr_env_test $(BINDIR)/$(CONFIG)/gpr_file_test $(BINDIR)/$(CONFIG)/gpr_histogram_test $(BINDIR)/$(CONFIG)/gpr_host_port_test $(BINDIR)/$(CONFIG)/gpr_log_test $(BINDIR)/$(CONFIG)/gpr_slice_buffer_test $(BINDIR)/$(CONFIG)/gpr_slice_test $(BINDIR)/$(CONFIG)/gpr_stack_lockfree_test $(BINDIR)/$(CONFIG)/gpr_string_test $(BINDIR)/$(CONFIG)/gpr_sync_test $(BINDIR)/$(CONFIG)/gpr_thd_test $(BINDIR)/$(CONFIG)/gpr_time_test $(BINDIR)/$(CONFIG)/gpr_tls_test $(BINDIR)/$(CONFIG)/gpr_useful_test $(BINDIR)/$(CONFIG)/grpc_auth_context_test $(BINDIR)/$(CONFIG)/grpc_base64_test $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test $(BINDIR)/$(CONFIG)/grpc_channel_args_test $(BINDIR)/$(CONFIG)/grpc_channel_stack_test $(BINDIR)/$(CONFIG)/grpc_completion_queue_test $(BINDIR)/$(CONFIG)/grpc_credentials_test $(BINDIR)/$(CONFIG)/grpc_json_token_test $(BINDIR)/$(CONFIG)/grpc_jwt_verifier_test $(BINDIR)/$(CONFIG)/grpc_security_connector_test $(BINDIR)/$(CONFIG)/grpc_stream_op_test $(BINDIR)/$(CONFIG)/hpack_parser_test $(BINDIR)/$(CONFIG)/hpack_table_test $(BINDIR)/$(CONFIG)/httpcli_format_request_test $(BINDIR)/$(CONFIG)/httpcli_parser_test $(BINDIR)/$(CONFIG)/httpcli_test $(BINDIR)/$(CONFIG)/json_rewrite $(BINDIR)/$(CONFIG)/json_rewrite_test $(BINDIR)/$(CONFIG)/json_test $(BINDIR)/$(CONFIG)/lame_client_test $(BINDIR)/$(CONFIG)/message_compress_test $(BINDIR)/$(CONFIG)/multi_init_test $(BINDIR)/$(CONFIG)/multiple_server_queues_test $(BINDIR)/$(CONFIG)/murmur_hash_test $(BINDIR)/$(CONFIG)/no_server_test $(BINDIR)/$(CONFIG)/resolve_address_test $(BINDIR)/$(CONFIG)/secure_endpoint_test $(BINDIR)/$(CONFIG)/sockaddr_utils_test $(BINDIR)/$(CONFIG)/tcp_client_posix_test $(BINDIR)/$(CONFIG)/tcp_posix_test $(BINDIR)/$(CONFIG)/tcp_server_posix_test $(BINDIR)/$(CONFIG)/time_averaged_stats_test $(BINDIR)/$(CONFIG)/timeout_encoding_test $(BINDIR)/$(CONFIG)/timers_test $(BINDIR)/$(CONFIG)/transport_metadata_test $(BINDIR)/$(CONFIG)/transport_security_test $(BINDIR)/$(CONFIG)/udp_server_test $(BINDIR)/$(CONFIG)/uri_parser_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fake_security_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_default_host_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_no_op_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_channel_connectivity_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_default_host_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_disappearing_server_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test $(BINDIR)/$(CONFIG)/chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test $(BINDIR)/$(CONFIG)/connection_prefix_bad_client_test $(BINDIR)/$(CONFIG)/initial_settings_frame_bad_client_test
 
-buildtests_cxx: buildtests_zookeeper privatelibs_cxx $(BINDIR)/$(CONFIG)/async_end2end_test $(BINDIR)/$(CONFIG)/async_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/async_unary_ping_pong_test $(BINDIR)/$(CONFIG)/auth_property_iterator_test $(BINDIR)/$(CONFIG)/channel_arguments_test $(BINDIR)/$(CONFIG)/cli_call_test $(BINDIR)/$(CONFIG)/client_crash_test $(BINDIR)/$(CONFIG)/client_crash_test_server $(BINDIR)/$(CONFIG)/credentials_test $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test $(BINDIR)/$(CONFIG)/cxx_slice_test $(BINDIR)/$(CONFIG)/cxx_time_test $(BINDIR)/$(CONFIG)/dynamic_thread_pool_test $(BINDIR)/$(CONFIG)/end2end_test $(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test $(BINDIR)/$(CONFIG)/generic_end2end_test $(BINDIR)/$(CONFIG)/grpc_cli $(BINDIR)/$(CONFIG)/interop_client $(BINDIR)/$(CONFIG)/interop_server $(BINDIR)/$(CONFIG)/interop_test $(BINDIR)/$(CONFIG)/mock_test $(BINDIR)/$(CONFIG)/qps_interarrival_test $(BINDIR)/$(CONFIG)/qps_openloop_test $(BINDIR)/$(CONFIG)/qps_test $(BINDIR)/$(CONFIG)/reconnect_interop_client $(BINDIR)/$(CONFIG)/reconnect_interop_server $(BINDIR)/$(CONFIG)/secure_auth_context_test $(BINDIR)/$(CONFIG)/server_crash_test $(BINDIR)/$(CONFIG)/server_crash_test_client $(BINDIR)/$(CONFIG)/status_test $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/sync_unary_ping_pong_test $(BINDIR)/$(CONFIG)/thread_stress_test
+buildtests_cxx: buildtests_zookeeper privatelibs_cxx $(BINDIR)/$(CONFIG)/async_end2end_test $(BINDIR)/$(CONFIG)/async_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/async_unary_ping_pong_test $(BINDIR)/$(CONFIG)/auth_property_iterator_test $(BINDIR)/$(CONFIG)/channel_arguments_test $(BINDIR)/$(CONFIG)/cli_call_test $(BINDIR)/$(CONFIG)/client_crash_test $(BINDIR)/$(CONFIG)/client_crash_test_server $(BINDIR)/$(CONFIG)/credentials_test $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test $(BINDIR)/$(CONFIG)/cxx_slice_test $(BINDIR)/$(CONFIG)/cxx_string_ref_test $(BINDIR)/$(CONFIG)/cxx_time_test $(BINDIR)/$(CONFIG)/end2end_test $(BINDIR)/$(CONFIG)/generic_end2end_test $(BINDIR)/$(CONFIG)/grpc_cli $(BINDIR)/$(CONFIG)/interop_client $(BINDIR)/$(CONFIG)/interop_server $(BINDIR)/$(CONFIG)/interop_test $(BINDIR)/$(CONFIG)/mock_test $(BINDIR)/$(CONFIG)/qps_interarrival_test $(BINDIR)/$(CONFIG)/qps_openloop_test $(BINDIR)/$(CONFIG)/qps_test $(BINDIR)/$(CONFIG)/reconnect_interop_client $(BINDIR)/$(CONFIG)/reconnect_interop_server $(BINDIR)/$(CONFIG)/secure_auth_context_test $(BINDIR)/$(CONFIG)/server_crash_test $(BINDIR)/$(CONFIG)/server_crash_test_client $(BINDIR)/$(CONFIG)/shutdown_test $(BINDIR)/$(CONFIG)/status_test $(BINDIR)/$(CONFIG)/sync_streaming_ping_pong_test $(BINDIR)/$(CONFIG)/sync_unary_ping_pong_test $(BINDIR)/$(CONFIG)/thread_stress_test
 
 ifeq ($(HAS_ZOOKEEPER),true)
 buildtests_zookeeper: privatelibs_zookeeper $(BINDIR)/$(CONFIG)/zookeeper_test
@@ -1761,6 +1762,8 @@ test_c: buildtests_c
 	$(Q) $(BINDIR)/$(CONFIG)/chttp2_stream_encoder_test || ( echo test chttp2_stream_encoder_test failed ; exit 1 )
 	$(E) "[RUN]     Testing chttp2_stream_map_test"
 	$(Q) $(BINDIR)/$(CONFIG)/chttp2_stream_map_test || ( echo test chttp2_stream_map_test failed ; exit 1 )
+	$(E) "[RUN]     Testing compression_test"
+	$(Q) $(BINDIR)/$(CONFIG)/compression_test || ( echo test compression_test failed ; exit 1 )
 	$(E) "[RUN]     Testing dualstack_socket_test"
 	$(Q) $(BINDIR)/$(CONFIG)/dualstack_socket_test || ( echo test dualstack_socket_test failed ; exit 1 )
 	$(E) "[RUN]     Testing fd_conservation_posix_test"
@@ -1807,6 +1810,8 @@ test_c: buildtests_c
 	$(Q) $(BINDIR)/$(CONFIG)/grpc_base64_test || ( echo test grpc_base64_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_byte_buffer_reader_test"
 	$(Q) $(BINDIR)/$(CONFIG)/grpc_byte_buffer_reader_test || ( echo test grpc_byte_buffer_reader_test failed ; exit 1 )
+	$(E) "[RUN]     Testing grpc_channel_args_test"
+	$(Q) $(BINDIR)/$(CONFIG)/grpc_channel_args_test || ( echo test grpc_channel_args_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_channel_stack_test"
 	$(Q) $(BINDIR)/$(CONFIG)/grpc_channel_stack_test || ( echo test grpc_channel_stack_test failed ; exit 1 )
 	$(E) "[RUN]     Testing grpc_completion_queue_test"
@@ -3323,14 +3328,12 @@ test_cxx: test_zookeeper buildtests_cxx
 	$(Q) $(BINDIR)/$(CONFIG)/cxx_byte_buffer_test || ( echo test cxx_byte_buffer_test failed ; exit 1 )
 	$(E) "[RUN]     Testing cxx_slice_test"
 	$(Q) $(BINDIR)/$(CONFIG)/cxx_slice_test || ( echo test cxx_slice_test failed ; exit 1 )
+	$(E) "[RUN]     Testing cxx_string_ref_test"
+	$(Q) $(BINDIR)/$(CONFIG)/cxx_string_ref_test || ( echo test cxx_string_ref_test failed ; exit 1 )
 	$(E) "[RUN]     Testing cxx_time_test"
 	$(Q) $(BINDIR)/$(CONFIG)/cxx_time_test || ( echo test cxx_time_test failed ; exit 1 )
-	$(E) "[RUN]     Testing dynamic_thread_pool_test"
-	$(Q) $(BINDIR)/$(CONFIG)/dynamic_thread_pool_test || ( echo test dynamic_thread_pool_test failed ; exit 1 )
 	$(E) "[RUN]     Testing end2end_test"
 	$(Q) $(BINDIR)/$(CONFIG)/end2end_test || ( echo test end2end_test failed ; exit 1 )
-	$(E) "[RUN]     Testing fixed_size_thread_pool_test"
-	$(Q) $(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test || ( echo test fixed_size_thread_pool_test failed ; exit 1 )
 	$(E) "[RUN]     Testing generic_end2end_test"
 	$(Q) $(BINDIR)/$(CONFIG)/generic_end2end_test || ( echo test generic_end2end_test failed ; exit 1 )
 	$(E) "[RUN]     Testing interop_test"
@@ -3345,6 +3348,8 @@ test_cxx: test_zookeeper buildtests_cxx
 	$(Q) $(BINDIR)/$(CONFIG)/secure_auth_context_test || ( echo test secure_auth_context_test failed ; exit 1 )
 	$(E) "[RUN]     Testing server_crash_test"
 	$(Q) $(BINDIR)/$(CONFIG)/server_crash_test || ( echo test server_crash_test failed ; exit 1 )
+	$(E) "[RUN]     Testing shutdown_test"
+	$(Q) $(BINDIR)/$(CONFIG)/shutdown_test || ( echo test shutdown_test failed ; exit 1 )
 	$(E) "[RUN]     Testing status_test"
 	$(Q) $(BINDIR)/$(CONFIG)/status_test || ( echo test status_test failed ; exit 1 )
 	$(E) "[RUN]     Testing sync_streaming_ping_pong_test"
@@ -3380,7 +3385,7 @@ test_python: static_c
 tools: tools_c tools_cxx
 
 
-tools_c: privatelibs_c $(BINDIR)/$(CONFIG)/gen_hpack_tables $(BINDIR)/$(CONFIG)/grpc_create_jwt $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token $(BINDIR)/$(CONFIG)/grpc_verify_jwt
+tools_c: privatelibs_c $(BINDIR)/$(CONFIG)/gen_hpack_tables $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters $(BINDIR)/$(CONFIG)/grpc_create_jwt $(BINDIR)/$(CONFIG)/grpc_fetch_oauth2 $(BINDIR)/$(CONFIG)/grpc_print_google_default_creds_token $(BINDIR)/$(CONFIG)/grpc_verify_jwt
 
 tools_cxx: privatelibs_cxx
 
@@ -4075,6 +4080,7 @@ LIBGRPC_SRC = \
     src/core/tsi/ssl_transport_security.c \
     src/core/tsi/transport_security.c \
     src/core/census/grpc_context.c \
+    src/core/census/grpc_filter.c \
     src/core/channel/channel_args.c \
     src/core/channel/channel_stack.c \
     src/core/channel/client_channel.c \
@@ -4348,6 +4354,7 @@ endif
 LIBGRPC_UNSECURE_SRC = \
     src/core/surface/init_unsecure.c \
     src/core/census/grpc_context.c \
+    src/core/census/grpc_filter.c \
     src/core/channel/channel_args.c \
     src/core/channel/channel_stack.c \
     src/core/channel/client_channel.c \
@@ -4600,10 +4607,10 @@ LIBGRPC++_SRC = \
     src/cpp/client/channel_arguments.cc \
     src/cpp/client/client_context.cc \
     src/cpp/client/create_channel.cc \
+    src/cpp/client/create_channel_internal.cc \
     src/cpp/client/credentials.cc \
     src/cpp/client/generic_stub.cc \
     src/cpp/client/insecure_credentials.cc \
-    src/cpp/client/internal_stub.cc \
     src/cpp/common/call.cc \
     src/cpp/common/completion_queue.cc \
     src/cpp/common/rpc_method.cc \
@@ -4620,28 +4627,20 @@ LIBGRPC++_SRC = \
     src/cpp/util/byte_buffer.cc \
     src/cpp/util/slice.cc \
     src/cpp/util/status.cc \
+    src/cpp/util/string_ref.cc \
     src/cpp/util/time.cc \
 
 PUBLIC_HEADERS_CXX += \
-    include/grpc++/async_generic_service.h \
-    include/grpc++/async_unary_call.h \
-    include/grpc++/auth_context.h \
-    include/grpc++/byte_buffer.h \
-    include/grpc++/channel_arguments.h \
-    include/grpc++/channel_interface.h \
+    include/grpc++/channel.h \
     include/grpc++/client_context.h \
     include/grpc++/completion_queue.h \
-    include/grpc++/config.h \
-    include/grpc++/config_protobuf.h \
     include/grpc++/create_channel.h \
     include/grpc++/credentials.h \
-    include/grpc++/dynamic_thread_pool.h \
-    include/grpc++/fixed_size_thread_pool.h \
-    include/grpc++/generic_stub.h \
+    include/grpc++/generic/async_generic_service.h \
+    include/grpc++/generic/generic_stub.h \
     include/grpc++/impl/call.h \
     include/grpc++/impl/client_unary_call.h \
     include/grpc++/impl/grpc_library.h \
-    include/grpc++/impl/internal_stub.h \
     include/grpc++/impl/proto_utils.h \
     include/grpc++/impl/rpc_method.h \
     include/grpc++/impl/rpc_service_method.h \
@@ -4657,13 +4656,20 @@ PUBLIC_HEADERS_CXX += \
     include/grpc++/server_builder.h \
     include/grpc++/server_context.h \
     include/grpc++/server_credentials.h \
-    include/grpc++/slice.h \
-    include/grpc++/status.h \
-    include/grpc++/status_code_enum.h \
-    include/grpc++/stream.h \
-    include/grpc++/stub_options.h \
-    include/grpc++/thread_pool_interface.h \
-    include/grpc++/time.h \
+    include/grpc++/support/async_stream.h \
+    include/grpc++/support/async_unary_call.h \
+    include/grpc++/support/auth_context.h \
+    include/grpc++/support/byte_buffer.h \
+    include/grpc++/support/channel_arguments.h \
+    include/grpc++/support/config.h \
+    include/grpc++/support/config_protobuf.h \
+    include/grpc++/support/slice.h \
+    include/grpc++/support/status.h \
+    include/grpc++/support/status_code_enum.h \
+    include/grpc++/support/string_ref.h \
+    include/grpc++/support/stub_options.h \
+    include/grpc++/support/sync_stream.h \
+    include/grpc++/support/time.h \
 
 LIBGRPC++_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_SRC))))
 
@@ -4843,10 +4849,10 @@ LIBGRPC++_UNSECURE_SRC = \
     src/cpp/client/channel_arguments.cc \
     src/cpp/client/client_context.cc \
     src/cpp/client/create_channel.cc \
+    src/cpp/client/create_channel_internal.cc \
     src/cpp/client/credentials.cc \
     src/cpp/client/generic_stub.cc \
     src/cpp/client/insecure_credentials.cc \
-    src/cpp/client/internal_stub.cc \
     src/cpp/common/call.cc \
     src/cpp/common/completion_queue.cc \
     src/cpp/common/rpc_method.cc \
@@ -4863,28 +4869,20 @@ LIBGRPC++_UNSECURE_SRC = \
     src/cpp/util/byte_buffer.cc \
     src/cpp/util/slice.cc \
     src/cpp/util/status.cc \
+    src/cpp/util/string_ref.cc \
     src/cpp/util/time.cc \
 
 PUBLIC_HEADERS_CXX += \
-    include/grpc++/async_generic_service.h \
-    include/grpc++/async_unary_call.h \
-    include/grpc++/auth_context.h \
-    include/grpc++/byte_buffer.h \
-    include/grpc++/channel_arguments.h \
-    include/grpc++/channel_interface.h \
+    include/grpc++/channel.h \
     include/grpc++/client_context.h \
     include/grpc++/completion_queue.h \
-    include/grpc++/config.h \
-    include/grpc++/config_protobuf.h \
     include/grpc++/create_channel.h \
     include/grpc++/credentials.h \
-    include/grpc++/dynamic_thread_pool.h \
-    include/grpc++/fixed_size_thread_pool.h \
-    include/grpc++/generic_stub.h \
+    include/grpc++/generic/async_generic_service.h \
+    include/grpc++/generic/generic_stub.h \
     include/grpc++/impl/call.h \
     include/grpc++/impl/client_unary_call.h \
     include/grpc++/impl/grpc_library.h \
-    include/grpc++/impl/internal_stub.h \
     include/grpc++/impl/proto_utils.h \
     include/grpc++/impl/rpc_method.h \
     include/grpc++/impl/rpc_service_method.h \
@@ -4900,13 +4898,20 @@ PUBLIC_HEADERS_CXX += \
     include/grpc++/server_builder.h \
     include/grpc++/server_context.h \
     include/grpc++/server_credentials.h \
-    include/grpc++/slice.h \
-    include/grpc++/status.h \
-    include/grpc++/status_code_enum.h \
-    include/grpc++/stream.h \
-    include/grpc++/stub_options.h \
-    include/grpc++/thread_pool_interface.h \
-    include/grpc++/time.h \
+    include/grpc++/support/async_stream.h \
+    include/grpc++/support/async_unary_call.h \
+    include/grpc++/support/auth_context.h \
+    include/grpc++/support/byte_buffer.h \
+    include/grpc++/support/channel_arguments.h \
+    include/grpc++/support/config.h \
+    include/grpc++/support/config_protobuf.h \
+    include/grpc++/support/slice.h \
+    include/grpc++/support/status.h \
+    include/grpc++/support/status_code_enum.h \
+    include/grpc++/support/string_ref.h \
+    include/grpc++/support/stub_options.h \
+    include/grpc++/support/sync_stream.h \
+    include/grpc++/support/time.h \
 
 LIBGRPC++_UNSECURE_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(LIBGRPC++_UNSECURE_SRC))))
 
@@ -4999,6 +5004,7 @@ endif
 
 
 LIBINTEROP_CLIENT_HELPER_SRC = \
+    $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc \
     test/cpp/interop/client_helper.cc \
 
 
@@ -5043,6 +5049,7 @@ ifneq ($(NO_DEPS),true)
 -include $(LIBINTEROP_CLIENT_HELPER_OBJS:.o=.dep)
 endif
 endif
+$(OBJDIR)/$(CONFIG)/test/cpp/interop/client_helper.o: $(GENDIR)/test/proto/messages.pb.cc $(GENDIR)/test/proto/messages.grpc.pb.cc
 
 
 LIBINTEROP_CLIENT_MAIN_SRC = \
@@ -6853,6 +6860,35 @@ endif
 endif
 
 
+COMPRESSION_TEST_SRC = \
+    test/core/compression/compression_test.c \
+
+COMPRESSION_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(COMPRESSION_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/compression_test: openssl_dep_error
+
+else
+
+$(BINDIR)/$(CONFIG)/compression_test: $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+	$(E) "[LD]      Linking $@"
+	$(Q) mkdir -p `dirname $@`
+	$(Q) $(LD) $(LDFLAGS) $(COMPRESSION_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/compression_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/compression/compression_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+deps_compression_test: $(COMPRESSION_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(COMPRESSION_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
 DUALSTACK_SOCKET_TEST_SRC = \
     test/core/end2end/dualstack_socket_test.c \
 
@@ -7085,6 +7121,35 @@ endif
 endif
 
 
+GEN_LEGAL_METADATA_CHARACTERS_SRC = \
+    tools/codegen/core/gen_legal_metadata_characters.c \
+
+GEN_LEGAL_METADATA_CHARACTERS_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GEN_LEGAL_METADATA_CHARACTERS_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: openssl_dep_error
+
+else
+
+$(BINDIR)/$(CONFIG)/gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS)
+	$(E) "[LD]      Linking $@"
+	$(Q) mkdir -p `dirname $@`
+	$(Q) $(LD) $(LDFLAGS) $(GEN_LEGAL_METADATA_CHARACTERS_OBJS) $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/gen_legal_metadata_characters
+
+endif
+
+$(OBJDIR)/$(CONFIG)/tools/codegen/core/gen_legal_metadata_characters.o: 
+deps_gen_legal_metadata_characters: $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(GEN_LEGAL_METADATA_CHARACTERS_OBJS:.o=.dep)
+endif
+endif
+
+
 GPR_CMDLINE_TEST_SRC = \
     test/core/support/cmdline_test.c \
 
@@ -7607,6 +7672,35 @@ endif
 endif
 
 
+GRPC_CHANNEL_ARGS_TEST_SRC = \
+    test/core/channel/channel_args_test.c \
+
+GRPC_CHANNEL_ARGS_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(GRPC_CHANNEL_ARGS_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/grpc_channel_args_test: openssl_dep_error
+
+else
+
+$(BINDIR)/$(CONFIG)/grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+	$(E) "[LD]      Linking $@"
+	$(Q) mkdir -p `dirname $@`
+	$(Q) $(LD) $(LDFLAGS) $(GRPC_CHANNEL_ARGS_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/grpc_channel_args_test
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/core/channel/channel_args_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+deps_grpc_channel_args_test: $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(GRPC_CHANNEL_ARGS_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
 GRPC_CHANNEL_STACK_TEST_SRC = \
     test/core/channel/channel_stack_test.c \
 
@@ -9178,15 +9272,15 @@ endif
 endif
 
 
-CXX_TIME_TEST_SRC = \
-    test/cpp/util/time_test.cc \
+CXX_STRING_REF_TEST_SRC = \
+    test/cpp/util/string_ref_test.cc \
 
-CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC))))
+CXX_STRING_REF_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_STRING_REF_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
 
 # You can't build secure targets if you don't have OpenSSL.
 
-$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error
+$(BINDIR)/$(CONFIG)/cxx_string_ref_test: openssl_dep_error
 
 else
 
@@ -9195,38 +9289,38 @@ ifeq ($(NO_PROTOBUF),true)
 
 # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+.
 
-$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error
+$(BINDIR)/$(CONFIG)/cxx_string_ref_test: protobuf_dep_error
 
 else
 
-$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(BINDIR)/$(CONFIG)/cxx_string_ref_test: $(PROTOBUF_DEP) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test
+	$(Q) $(LDXX) $(LDFLAGS) $(CXX_STRING_REF_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_string_ref_test
 
 endif
 
 endif
 
-$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep)
+$(OBJDIR)/$(CONFIG)/test/cpp/util/string_ref_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc++.a
+deps_cxx_string_ref_test: $(CXX_STRING_REF_TEST_OBJS:.o=.dep)
 
 ifneq ($(NO_SECURE),true)
 ifneq ($(NO_DEPS),true)
--include $(CXX_TIME_TEST_OBJS:.o=.dep)
+-include $(CXX_STRING_REF_TEST_OBJS:.o=.dep)
 endif
 endif
 
 
-DYNAMIC_THREAD_POOL_TEST_SRC = \
-    test/cpp/server/dynamic_thread_pool_test.cc \
+CXX_TIME_TEST_SRC = \
+    test/cpp/util/time_test.cc \
 
-DYNAMIC_THREAD_POOL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(DYNAMIC_THREAD_POOL_TEST_SRC))))
+CXX_TIME_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(CXX_TIME_TEST_SRC))))
 ifeq ($(NO_SECURE),true)
 
 # You can't build secure targets if you don't have OpenSSL.
 
-$(BINDIR)/$(CONFIG)/dynamic_thread_pool_test: openssl_dep_error
+$(BINDIR)/$(CONFIG)/cxx_time_test: openssl_dep_error
 
 else
 
@@ -9235,25 +9329,25 @@ ifeq ($(NO_PROTOBUF),true)
 
 # You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+.
 
-$(BINDIR)/$(CONFIG)/dynamic_thread_pool_test: protobuf_dep_error
+$(BINDIR)/$(CONFIG)/cxx_time_test: protobuf_dep_error
 
 else
 
-$(BINDIR)/$(CONFIG)/dynamic_thread_pool_test: $(PROTOBUF_DEP) $(DYNAMIC_THREAD_POOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+$(BINDIR)/$(CONFIG)/cxx_time_test: $(PROTOBUF_DEP) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
 	$(E) "[LD]      Linking $@"
 	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(DYNAMIC_THREAD_POOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/dynamic_thread_pool_test
+	$(Q) $(LDXX) $(LDFLAGS) $(CXX_TIME_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/cxx_time_test
 
 endif
 
 endif
 
-$(OBJDIR)/$(CONFIG)/test/cpp/server/dynamic_thread_pool_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-deps_dynamic_thread_pool_test: $(DYNAMIC_THREAD_POOL_TEST_OBJS:.o=.dep)
+$(OBJDIR)/$(CONFIG)/test/cpp/util/time_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+deps_cxx_time_test: $(CXX_TIME_TEST_OBJS:.o=.dep)
 
 ifneq ($(NO_SECURE),true)
 ifneq ($(NO_DEPS),true)
--include $(DYNAMIC_THREAD_POOL_TEST_OBJS:.o=.dep)
+-include $(CXX_TIME_TEST_OBJS:.o=.dep)
 endif
 endif
 
@@ -9298,46 +9392,6 @@ endif
 endif
 
 
-FIXED_SIZE_THREAD_POOL_TEST_SRC = \
-    test/cpp/server/fixed_size_thread_pool_test.cc \
-
-FIXED_SIZE_THREAD_POOL_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(FIXED_SIZE_THREAD_POOL_TEST_SRC))))
-ifeq ($(NO_SECURE),true)
-
-# You can't build secure targets if you don't have OpenSSL.
-
-$(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test: openssl_dep_error
-
-else
-
-
-ifeq ($(NO_PROTOBUF),true)
-
-# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+.
-
-$(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test: protobuf_dep_error
-
-else
-
-$(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test: $(PROTOBUF_DEP) $(FIXED_SIZE_THREAD_POOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-	$(E) "[LD]      Linking $@"
-	$(Q) mkdir -p `dirname $@`
-	$(Q) $(LDXX) $(LDFLAGS) $(FIXED_SIZE_THREAD_POOL_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/fixed_size_thread_pool_test
-
-endif
-
-endif
-
-$(OBJDIR)/$(CONFIG)/test/cpp/server/fixed_size_thread_pool_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
-deps_fixed_size_thread_pool_test: $(FIXED_SIZE_THREAD_POOL_TEST_OBJS:.o=.dep)
-
-ifneq ($(NO_SECURE),true)
-ifneq ($(NO_DEPS),true)
--include $(FIXED_SIZE_THREAD_POOL_TEST_OBJS:.o=.dep)
-endif
-endif
-
-
 GENERIC_END2END_TEST_SRC = \
     test/cpp/end2end/generic_end2end_test.cc \
 
@@ -10228,6 +10282,46 @@ endif
 endif
 
 
+SHUTDOWN_TEST_SRC = \
+    test/cpp/end2end/shutdown_test.cc \
+
+SHUTDOWN_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(SHUTDOWN_TEST_SRC))))
+ifeq ($(NO_SECURE),true)
+
+# You can't build secure targets if you don't have OpenSSL.
+
+$(BINDIR)/$(CONFIG)/shutdown_test: openssl_dep_error
+
+else
+
+
+ifeq ($(NO_PROTOBUF),true)
+
+# You can't build the protoc plugins or protobuf-enabled targets if you don't have protobuf 3.0.0+.
+
+$(BINDIR)/$(CONFIG)/shutdown_test: protobuf_dep_error
+
+else
+
+$(BINDIR)/$(CONFIG)/shutdown_test: $(PROTOBUF_DEP) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+	$(E) "[LD]      Linking $@"
+	$(Q) mkdir -p `dirname $@`
+	$(Q) $(LDXX) $(LDFLAGS) $(SHUTDOWN_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a $(LDLIBSXX) $(LDLIBS_PROTOBUF) $(LDLIBS) $(LDLIBS_SECURE) $(GTEST_LIB) -o $(BINDIR)/$(CONFIG)/shutdown_test
+
+endif
+
+endif
+
+$(OBJDIR)/$(CONFIG)/test/cpp/end2end/shutdown_test.o:  $(LIBDIR)/$(CONFIG)/libgrpc++_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc++.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LIBDIR)/$(CONFIG)/libgpr_test_util.a $(LIBDIR)/$(CONFIG)/libgpr.a
+deps_shutdown_test: $(SHUTDOWN_TEST_OBJS:.o=.dep)
+
+ifneq ($(NO_SECURE),true)
+ifneq ($(NO_DEPS),true)
+-include $(SHUTDOWN_TEST_OBJS:.o=.dep)
+endif
+endif
+
+
 STATUS_TEST_SRC = \
     test/cpp/util/status_test.cc \
 
diff --git a/build.json b/build.json
index f7be17eedf6a229cb962bde510a10b22e64e58fa..1efaafdb52d5f8bcdd2c231abe8cb3a807e168ec 100644
--- a/build.json
+++ b/build.json
@@ -30,25 +30,16 @@
     {
       "name": "grpc++_base",
       "public_headers": [
-        "include/grpc++/async_generic_service.h",
-        "include/grpc++/async_unary_call.h",
-        "include/grpc++/auth_context.h",
-        "include/grpc++/byte_buffer.h",
-        "include/grpc++/channel_arguments.h",
-        "include/grpc++/channel_interface.h",
+        "include/grpc++/channel.h",
         "include/grpc++/client_context.h",
         "include/grpc++/completion_queue.h",
-        "include/grpc++/config.h",
-        "include/grpc++/config_protobuf.h",
         "include/grpc++/create_channel.h",
         "include/grpc++/credentials.h",
-        "include/grpc++/dynamic_thread_pool.h",
-        "include/grpc++/fixed_size_thread_pool.h",
-        "include/grpc++/generic_stub.h",
+        "include/grpc++/generic/async_generic_service.h",
+        "include/grpc++/generic/generic_stub.h",
         "include/grpc++/impl/call.h",
         "include/grpc++/impl/client_unary_call.h",
         "include/grpc++/impl/grpc_library.h",
-        "include/grpc++/impl/internal_stub.h",
         "include/grpc++/impl/proto_utils.h",
         "include/grpc++/impl/rpc_method.h",
         "include/grpc++/impl/rpc_service_method.h",
@@ -64,27 +55,37 @@
         "include/grpc++/server_builder.h",
         "include/grpc++/server_context.h",
         "include/grpc++/server_credentials.h",
-        "include/grpc++/slice.h",
-        "include/grpc++/status.h",
-        "include/grpc++/status_code_enum.h",
-        "include/grpc++/stream.h",
-        "include/grpc++/stub_options.h",
-        "include/grpc++/thread_pool_interface.h",
-        "include/grpc++/time.h"
+        "include/grpc++/support/async_stream.h",
+        "include/grpc++/support/async_unary_call.h",
+        "include/grpc++/support/auth_context.h",
+        "include/grpc++/support/byte_buffer.h",
+        "include/grpc++/support/channel_arguments.h",
+        "include/grpc++/support/config.h",
+        "include/grpc++/support/config_protobuf.h",
+        "include/grpc++/support/slice.h",
+        "include/grpc++/support/status.h",
+        "include/grpc++/support/status_code_enum.h",
+        "include/grpc++/support/string_ref.h",
+        "include/grpc++/support/stub_options.h",
+        "include/grpc++/support/sync_stream.h",
+        "include/grpc++/support/time.h"
       ],
       "headers": [
-        "src/cpp/client/channel.h",
-        "src/cpp/common/create_auth_context.h"
+        "src/cpp/client/create_channel_internal.h",
+        "src/cpp/common/create_auth_context.h",
+        "src/cpp/server/dynamic_thread_pool.h",
+        "src/cpp/server/fixed_size_thread_pool.h",
+        "src/cpp/server/thread_pool_interface.h"
       ],
       "src": [
         "src/cpp/client/channel.cc",
         "src/cpp/client/channel_arguments.cc",
         "src/cpp/client/client_context.cc",
         "src/cpp/client/create_channel.cc",
+        "src/cpp/client/create_channel_internal.cc",
         "src/cpp/client/credentials.cc",
         "src/cpp/client/generic_stub.cc",
         "src/cpp/client/insecure_credentials.cc",
-        "src/cpp/client/internal_stub.cc",
         "src/cpp/common/call.cc",
         "src/cpp/common/completion_queue.cc",
         "src/cpp/common/rpc_method.cc",
@@ -101,6 +102,7 @@
         "src/cpp/util/byte_buffer.cc",
         "src/cpp/util/slice.cc",
         "src/cpp/util/status.cc",
+        "src/cpp/util/string_ref.cc",
         "src/cpp/util/time.cc"
       ]
     },
@@ -114,7 +116,7 @@
         "include/grpc/status.h"
       ],
       "headers": [
-        "src/core/channel/census_filter.h",
+        "src/core/census/grpc_filter.h",
         "src/core/channel/channel_args.h",
         "src/core/channel/channel_stack.h",
         "src/core/channel/client_channel.h",
@@ -180,6 +182,8 @@
         "src/core/json/json_writer.h",
         "src/core/profiling/timers.h",
         "src/core/profiling/timers_preciseclock.h",
+        "src/core/statistics/census_interface.h",
+        "src/core/statistics/census_rpc_stats.h",
         "src/core/surface/byte_buffer_queue.h",
         "src/core/surface/call.h",
         "src/core/surface/channel.h",
@@ -217,6 +221,7 @@
       ],
       "src": [
         "src/core/census/grpc_context.c",
+        "src/core/census/grpc_filter.c",
         "src/core/channel/channel_args.c",
         "src/core/channel/channel_stack.c",
         "src/core/channel/client_channel.c",
@@ -592,8 +597,7 @@
       "external_deps": [
         "zookeeper"
       ],
-      "secure": "no",
-      "vs_project_guid": "{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}"
+      "secure": "no"
     },
     {
       "name": "reconnect_server",
@@ -698,8 +702,8 @@
       "build": "protoc",
       "language": "c++",
       "headers": [
-        "include/grpc++/config.h",
-        "include/grpc++/config_protobuf.h",
+        "include/grpc++/support/config.h",
+        "include/grpc++/support/config_protobuf.h",
         "src/compiler/config.h",
         "src/compiler/cpp_generator.h",
         "src/compiler/cpp_generator_helpers.h",
@@ -733,6 +737,7 @@
         "test/cpp/interop/client_helper.h"
       ],
       "src": [
+        "test/proto/messages.proto",
         "test/cpp/interop/client_helper.cc"
       ],
       "deps": [
@@ -992,6 +997,20 @@
         "gpr"
       ]
     },
+    {
+      "name": "compression_test",
+      "build": "test",
+      "language": "c",
+      "src": [
+        "test/core/compression/compression_test.c"
+      ],
+      "deps": [
+        "grpc_test_util",
+        "grpc",
+        "gpr_test_util",
+        "gpr"
+      ]
+    },
     {
       "name": "dualstack_socket_test",
       "build": "test",
@@ -1129,6 +1148,15 @@
         "grpc"
       ]
     },
+    {
+      "name": "gen_legal_metadata_characters",
+      "build": "tool",
+      "language": "c",
+      "src": [
+        "tools/codegen/core/gen_legal_metadata_characters.c"
+      ],
+      "deps": []
+    },
     {
       "name": "gpr_cmdline_test",
       "build": "test",
@@ -1351,6 +1379,20 @@
         "gpr"
       ]
     },
+    {
+      "name": "grpc_channel_args_test",
+      "build": "test",
+      "language": "c",
+      "src": [
+        "test/core/channel/channel_args_test.c"
+      ],
+      "deps": [
+        "grpc_test_util",
+        "grpc",
+        "gpr_test_util",
+        "gpr"
+      ]
+    },
     {
       "name": "grpc_channel_stack_test",
       "build": "test",
@@ -2101,26 +2143,22 @@
       ]
     },
     {
-      "name": "cxx_time_test",
+      "name": "cxx_string_ref_test",
       "build": "test",
       "language": "c++",
       "src": [
-        "test/cpp/util/time_test.cc"
+        "test/cpp/util/string_ref_test.cc"
       ],
       "deps": [
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
+        "grpc++"
       ]
     },
     {
-      "name": "dynamic_thread_pool_test",
+      "name": "cxx_time_test",
       "build": "test",
       "language": "c++",
       "src": [
-        "test/cpp/server/dynamic_thread_pool_test.cc"
+        "test/cpp/util/time_test.cc"
       ],
       "deps": [
         "grpc_test_util",
@@ -2146,21 +2184,6 @@
         "gpr"
       ]
     },
-    {
-      "name": "fixed_size_thread_pool_test",
-      "build": "test",
-      "language": "c++",
-      "src": [
-        "test/cpp/server/fixed_size_thread_pool_test.cc"
-      ],
-      "deps": [
-        "grpc_test_util",
-        "grpc++",
-        "grpc",
-        "gpr_test_util",
-        "gpr"
-      ]
-    },
     {
       "name": "generic_end2end_test",
       "build": "test",
@@ -2474,6 +2497,9 @@
         "gpr",
         "grpc++_test_config"
       ],
+      "exclude_configs": [
+        "tsan"
+      ],
       "platforms": [
         "mac",
         "linux",
@@ -2596,6 +2622,22 @@
         "gpr"
       ]
     },
+    {
+      "name": "shutdown_test",
+      "build": "test",
+      "language": "c++",
+      "src": [
+        "test/cpp/end2end/shutdown_test.cc"
+      ],
+      "deps": [
+        "grpc++_test_util",
+        "grpc_test_util",
+        "grpc++",
+        "grpc",
+        "gpr_test_util",
+        "gpr"
+      ]
+    },
     {
       "name": "status_test",
       "build": "test",
diff --git a/doc/connection-backoff-interop-test-description.md b/doc/connection-backoff-interop-test-description.md
index 0f00c86dca202a87619352b817abb7300bd985d1..64405431d2aa6059c7f066f7b776c46b44951549 100644
--- a/doc/connection-backoff-interop-test-description.md
+++ b/doc/connection-backoff-interop-test-description.md
@@ -31,9 +31,9 @@ Clients should accept these arguments:
 * --server_retry_port=PORT
     * The server port to connect to for testing backoffs. For example, "8081"
 
-The client must connect to the control port without TLS. The client should
-either assert on the server returned backoff status or check the returned
-backoffs on its own.
+The client must connect to the control port without TLS. The client must connect
+to the retry port with TLS. The client should either assert on the server
+returned backoff status or check the returned backoffs on its own.
 
 Procedure of client:
 
diff --git a/doc/connection-backoff.md b/doc/connection-backoff.md
index 7094e737c510942d49a02984d1c7394f543cae7f..251a60f384b3576a55e1788a83d6a31479c4296c 100644
--- a/doc/connection-backoff.md
+++ b/doc/connection-backoff.md
@@ -44,3 +44,12 @@ different jitter logic.
 Alternate implementations must ensure that connection backoffs started at the
 same time disperse, and must not attempt connections substantially more often
 than the above algorithm.
+
+## Reset Backoff
+
+The back off should be reset to INITIAL_BACKOFF at some time point, so that the
+reconnecting behavior is consistent no matter the connection is a newly started
+one or a previously disconnected one.
+
+We choose to reset the Backoff when the SETTINGS frame is received, at that time
+point, we know for sure that this connection was accepted by the server.
diff --git a/doc/ref/csharp/.gitignore b/doc/ref/csharp/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..809997171c5c89aecdf4513136b6f1674fbb2430
--- /dev/null
+++ b/doc/ref/csharp/.gitignore
@@ -0,0 +1 @@
+LastBuild.log
diff --git a/doc/ref/csharp/html/SearchHelp.aspx b/doc/ref/csharp/html/SearchHelp.aspx
new file mode 100644
index 0000000000000000000000000000000000000000..6e2a17b6abc192510787bcca491b9cef247b931f
--- /dev/null
+++ b/doc/ref/csharp/html/SearchHelp.aspx
@@ -0,0 +1,233 @@
+<%@ Page Language="C#" EnableViewState="False" %>
+
+<script runat="server">
+//===============================================================================================================
+// System  : Sandcastle Help File Builder
+// File    : SearchHelp.aspx
+// Author  : Eric Woodruff  (Eric@EWoodruff.us)
+// Updated : 05/15/2014
+// Note    : Copyright 2007-2015, Eric Woodruff, All rights reserved
+// Compiler: Microsoft C#
+//
+// This file contains the code used to search for keywords within the help topics using the full-text index
+// files created by the help file builder.
+//
+// This code is published under the Microsoft Public License (Ms-PL).  A copy of the license should be
+// distributed with the code.  It can also be found at the project website: https://GitHub.com/EWSoftware/SHFB.  This
+// notice, the author's name, and all copyright notices must remain intact in all applications, documentation,
+// and source files.
+//
+//    Date     Who  Comments
+// ==============================================================================================================
+// 06/24/2007  EFW  Created the code
+// 02/17/2012  EFW  Switched to JSON serialization to support websites that use something other than ASP.NET
+//                  such as PHP.
+// 05/15/2014  EFW  Updated for use with the lightweight website presentation styles
+//===============================================================================================================
+
+/// <summary>
+/// This class is used to track the results and their rankings
+/// </summary>
+private class Ranking
+{
+    public string Filename, PageTitle;
+    public int Rank;
+
+    public Ranking(string file, string title, int rank)
+    {
+        Filename = file;
+        PageTitle = title;
+        Rank = rank;
+    }
+}
+
+/// <summary>
+/// Render the search results
+/// </summary>
+/// <param name="writer">The writer to which the results are written</param>
+protected override void Render(HtmlTextWriter writer)
+{
+    JavaScriptSerializer jss = new JavaScriptSerializer();
+    string searchText, ftiFile;
+    char letter;
+    bool sortByTitle = false;
+
+    jss.MaxJsonLength = Int32.MaxValue;
+
+    // The keywords for which to search should be passed in the query string
+    searchText = this.Request.QueryString["Keywords"];
+
+    if(String.IsNullOrEmpty(searchText))
+    {
+        writer.Write("<strong>Nothing found</strong>");
+        return;
+    }
+
+    // An optional SortByTitle option can also be specified
+    if(this.Request.QueryString["SortByTitle"] != null)
+        sortByTitle = Convert.ToBoolean(this.Request.QueryString["SortByTitle"]);
+
+    List<string> keywords = this.ParseKeywords(searchText);
+    List<char> letters = new List<char>();
+    List<string> fileList;
+    Dictionary<string, List<long>> ftiWords, wordDictionary = new Dictionary<string,List<long>>();
+
+    // Load the file index
+    using(StreamReader sr = new StreamReader(Server.MapPath("fti/FTI_Files.json")))
+    {
+        fileList = jss.Deserialize<List<string>>(sr.ReadToEnd());
+    }
+
+    // Load the required word index files
+    foreach(string word in keywords)
+    {
+        letter = word[0];
+
+        if(!letters.Contains(letter))
+        {
+            letters.Add(letter);
+            ftiFile = Server.MapPath(String.Format(CultureInfo.InvariantCulture, "fti/FTI_{0}.json", (int)letter));
+
+            if(File.Exists(ftiFile))
+            {
+                using(StreamReader sr = new StreamReader(ftiFile))
+                {
+                    ftiWords = jss.Deserialize<Dictionary<string, List<long>>>(sr.ReadToEnd());
+                }
+
+                foreach(string ftiWord in ftiWords.Keys)
+                    wordDictionary.Add(ftiWord, ftiWords[ftiWord]);
+            }
+        }
+    }
+
+    // Perform the search and return the results as a block of HTML
+    writer.Write(this.Search(keywords, fileList, wordDictionary, sortByTitle));
+}
+
+/// <summary>
+/// Split the search text up into keywords
+/// </summary>
+/// <param name="keywords">The keywords to parse</param>
+/// <returns>A list containing the words for which to search</returns>
+private List<string> ParseKeywords(string keywords)
+{
+    List<string> keywordList = new List<string>();
+    string checkWord;
+    string[] words = Regex.Split(keywords, @"\W+");
+
+    foreach(string word in words)
+    {
+        checkWord = word.ToLower(CultureInfo.InvariantCulture);
+        
+        if(checkWord.Length > 2 && !Char.IsDigit(checkWord[0]) && !keywordList.Contains(checkWord))
+            keywordList.Add(checkWord);
+    }
+
+    return keywordList;
+}
+
+/// <summary>
+/// Search for the specified keywords and return the results as a block of HTML
+/// </summary>
+/// <param name="keywords">The keywords for which to search</param>
+/// <param name="fileInfo">The file list</param>
+/// <param name="wordDictionary">The dictionary used to find the words</param>
+/// <param name="sortByTitle">True to sort by title, false to sort by ranking</param>
+/// <returns>A block of HTML representing the search results</returns>
+private string Search(List<string> keywords, List<string> fileInfo,
+  Dictionary<string, List<long>> wordDictionary, bool sortByTitle)
+{
+    StringBuilder sb = new StringBuilder(10240);
+    Dictionary<string, List<long>> matches = new Dictionary<string, List<long>>();
+    List<long> occurrences;
+    List<int> matchingFileIndices = new List<int>(), occurrenceIndices = new List<int>();
+    List<Ranking> rankings = new List<Ranking>();
+
+    string filename, title;
+    string[] fileIndex;
+    bool isFirst = true;
+    int idx, wordCount, matchCount;
+
+    foreach(string word in keywords)
+    {
+        if(!wordDictionary.TryGetValue(word, out occurrences))
+            return "<strong>Nothing found</strong>";
+
+        matches.Add(word, occurrences);
+        occurrenceIndices.Clear();
+
+        // Get a list of the file indices for this match
+        foreach(long entry in occurrences)
+            occurrenceIndices.Add((int)(entry >> 16));
+            
+        if(isFirst)
+        {
+            isFirst = false;
+            matchingFileIndices.AddRange(occurrenceIndices);
+        }
+        else
+        {
+            // After the first match, remove files that do not appear for
+            // all found keywords.
+            for(idx = 0; idx < matchingFileIndices.Count; idx++)
+                if(!occurrenceIndices.Contains(matchingFileIndices[idx]))
+                {
+                    matchingFileIndices.RemoveAt(idx);
+                    idx--;
+                }
+        }
+    }
+
+    if(matchingFileIndices.Count == 0)
+        return "<strong>Nothing found</strong>";
+
+    // Rank the files based on the number of times the words occurs
+    foreach(int index in matchingFileIndices)
+    {
+        // Split out the title, filename, and word count
+        fileIndex = fileInfo[index].Split('\x0');
+
+        title = fileIndex[0];
+        filename = fileIndex[1];
+        wordCount = Convert.ToInt32(fileIndex[2]);
+        matchCount = 0;
+        
+        foreach(string word in keywords)
+        {
+            occurrences = matches[word];
+
+            foreach(long entry in occurrences)
+                if((int)(entry >> 16) == index)
+                    matchCount += (int)(entry & 0xFFFF);
+        }
+
+        rankings.Add(new Ranking(filename, title, matchCount * 1000 / wordCount));
+		
+        if(rankings.Count > 99)
+            break;				
+    }
+
+    // Sort by rank in descending order or by page title in ascending order
+    rankings.Sort(delegate (Ranking x, Ranking y)
+    {
+        if(!sortByTitle)
+            return y.Rank - x.Rank;
+
+        return x.PageTitle.CompareTo(y.PageTitle);
+    });
+
+    // Format the file list and return the results
+		sb.Append("<ol>");
+
+    foreach(Ranking r in rankings)
+        sb.AppendFormat("<li><a href=\"{0}\" target=\"_blank\">{1}</a></li>", r.Filename, r.PageTitle);
+
+		sb.Append("</ol>");
+
+    if(rankings.Count < matchingFileIndices.Count)
+        sb.AppendFormat("<p>Omitted {0} more results</p>", matchingFileIndices.Count - rankings.Count);
+
+    return sb.ToString();
+}
+</script>
diff --git a/doc/ref/csharp/html/SearchHelp.inc.php b/doc/ref/csharp/html/SearchHelp.inc.php
new file mode 100644
index 0000000000000000000000000000000000000000..b905e130cfd995c034a569df15812d682c926c1b
--- /dev/null
+++ b/doc/ref/csharp/html/SearchHelp.inc.php
@@ -0,0 +1,173 @@
+<?
+// Contributed to the Sandcastle Help File Builder project by Thomas Levesque
+
+class Ranking
+{
+    public $filename;
+    public $pageTitle;
+    public $rank;
+
+    function __construct($file, $title, $rank)
+    {
+        $this->filename = $file;
+        $this->pageTitle = $title;
+        $this->rank = $rank;
+    }
+}
+
+
+/// <summary>
+/// Split the search text up into keywords
+/// </summary>
+/// <param name="keywords">The keywords to parse</param>
+/// <returns>A list containing the words for which to search</returns>
+function ParseKeywords($keywords)
+{
+    $keywordList = array();
+    $words = preg_split("/[^\w]+/", $keywords);
+
+    foreach($words as $word)
+    {
+        $checkWord = strtolower($word);
+        $first = substr($checkWord, 0, 1);
+        if(strlen($checkWord) > 2 && !ctype_digit($first) && !in_array($checkWord, $keywordList))
+        {
+            array_push($keywordList, $checkWord);
+        }
+    }
+
+    return $keywordList;
+}
+
+
+/// <summary>
+/// Search for the specified keywords and return the results as a block of
+/// HTML.
+/// </summary>
+/// <param name="keywords">The keywords for which to search</param>
+/// <param name="fileInfo">The file list</param>
+/// <param name="wordDictionary">The dictionary used to find the words</param>
+/// <param name="sortByTitle">True to sort by title, false to sort by
+/// ranking</param>
+/// <returns>A block of HTML representing the search results.</returns>
+function Search($keywords, $fileInfo, $wordDictionary, $sortByTitle)
+{
+    $sb = "<ol>";
+    $matches = array();
+    $matchingFileIndices = array();
+    $rankings = array();
+
+    $isFirst = true;
+
+    foreach($keywords as $word)
+    {
+        if (!array_key_exists($word, $wordDictionary))
+        {
+            return "<strong>Nothing found</strong>";
+        }
+        $occurrences = $wordDictionary[$word];
+
+        $matches[$word] = $occurrences;
+        $occurrenceIndices = array();
+
+        // Get a list of the file indices for this match
+        foreach($occurrences as $entry)
+            array_push($occurrenceIndices, ($entry >> 16));
+
+        if($isFirst)
+        {
+            $isFirst = false;
+            foreach($occurrenceIndices as $i)
+            {
+                array_push($matchingFileIndices, $i);
+            }
+        }
+        else
+        {
+            // After the first match, remove files that do not appear for
+            // all found keywords.
+            for($idx = 0; $idx < count($matchingFileIndices); $idx++)
+            {
+                if (!in_array($matchingFileIndices[$idx], $occurrenceIndices))
+                {
+                    array_splice($matchingFileIndices, $idx, 1);
+                    $idx--;
+                }
+            }
+        }
+    }
+
+    if(count($matchingFileIndices) == 0)
+    {
+        return "<strong>Nothing found</strong>";
+    }
+
+    // Rank the files based on the number of times the words occurs
+    foreach($matchingFileIndices as $index)
+    {
+        // Split out the title, filename, and word count
+        $fileIndex = explode("\x00", $fileInfo[$index]);
+
+        $title = $fileIndex[0];
+        $filename = $fileIndex[1];
+        $wordCount = intval($fileIndex[2]);
+        $matchCount = 0;
+
+        foreach($keywords as $words)
+        {
+            $occurrences = $matches[$word];
+
+            foreach($occurrences as $entry)
+            {
+                if(($entry >> 16) == $index)
+                    $matchCount += $entry & 0xFFFF;
+            }
+        }
+
+        $r = new Ranking($filename, $title, $matchCount * 1000 / $wordCount);
+        array_push($rankings, $r);
+
+        if(count($rankings) > 99)
+            break;
+    }
+
+    // Sort by rank in descending order or by page title in ascending order
+    if($sortByTitle)
+    {
+        usort($rankings, "cmprankbytitle");
+    }
+    else
+    {
+        usort($rankings, "cmprank");
+    }
+
+    // Format the file list and return the results
+    foreach($rankings as $r)
+    {
+        $f = $r->filename;
+        $t = $r->pageTitle;
+        $sb .= "<li><a href=\"$f\" target=\"_blank\">$t</a></li>";
+    }
+
+    $sb .= "</ol";
+
+    if(count($rankings) < count($matchingFileIndices))
+    {
+        $c = count(matchingFileIndices) - count(rankings);
+        $sb .= "<p>Omitted $c more results</p>";
+    }
+
+    return $sb;
+}
+
+function cmprank($x, $y)
+{
+    return $y->rank - $x->rank;
+}
+
+function cmprankbytitle($x, $y)
+{
+    return strcmp($x->pageTitle, $y->pageTitle);
+}
+
+?>
diff --git a/doc/ref/csharp/html/SearchHelp.php b/doc/ref/csharp/html/SearchHelp.php
new file mode 100644
index 0000000000000000000000000000000000000000..eaa1e117f941c969ef8737d9f30037315f05eb6f
--- /dev/null
+++ b/doc/ref/csharp/html/SearchHelp.php
@@ -0,0 +1,58 @@
+<?
+// Contributed to the Sandcastle Help File Builder project by Thomas Levesque
+
+include("SearchHelp.inc.php");
+
+    $sortByTitle = false;
+
+    // The keywords for which to search should be passed in the query string
+    $searchText = $_GET["Keywords"];
+
+    if(empty($searchText))
+    {
+    ?>
+        <strong>Nothing found</strong>
+    <?
+        return;
+    }
+
+    // An optional SortByTitle option can also be specified
+    if($_GET["SortByTitle"] == "true")
+        $sortByTitle = true;
+
+    $keywords = ParseKeywords($searchText);
+    $letters = array();
+    $wordDictionary = array();
+
+    // Load the file index
+    $json = file_get_contents("fti/FTI_Files.json");
+    $fileList = json_decode($json);
+
+    // Load the required word index files
+    foreach($keywords as $word)
+    {
+        $letter = substr($word, 0, 1);
+
+        if(!in_array($letter, $letters))
+        {
+            array_push($letters, $letter);
+            $ascii = ord($letter);
+            $ftiFile = "fti/FTI_$ascii.json";
+
+            if(file_exists($ftiFile))
+            {
+                $json = file_get_contents($ftiFile);
+                $ftiWords = json_decode($json, true);
+
+                foreach($ftiWords as $ftiWord => $val)
+                {
+                    $wordDictionary[$ftiWord] = $val;
+                }
+            }
+        }
+    }
+
+    // Perform the search and return the results as a block of HTML
+    $results = Search($keywords, $fileList, $wordDictionary, $sortByTitle);
+    echo $results;
+?>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/Web.Config b/doc/ref/csharp/html/Web.Config
new file mode 100644
index 0000000000000000000000000000000000000000..26672e8189fd7e74e73fda1d1a72124fc53f0b99
--- /dev/null
+++ b/doc/ref/csharp/html/Web.Config
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>
+<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
+	<system.web>
+		<compilation debug="false">
+			<assemblies>
+				<add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" />
+			</assemblies>
+		</compilation>
+		<pages>
+			<namespaces>
+				<add namespace="System"/>
+				<add namespace="System.Collections.Generic"/>
+				<add namespace="System.Globalization"/>
+				<add namespace="System.IO"/>
+				<add namespace="System.Text"/>
+				<add namespace="System.Text.RegularExpressions"/>
+				<add namespace="System.Web"/>
+				<add namespace="System.Web.Script.Serialization"/>
+				<add namespace="System.Web.UI"/>
+				<add namespace="System.Xml"/>
+				<add namespace="System.Xml.Serialization" />
+				<add namespace="System.Xml.XPath"/>
+			</namespaces>
+		</pages>
+	</system.web>
+	<appSettings>
+		<!-- Increase this value if you get an "Operation is not valid due to the current state of the object" error
+		     when using the search page. -->
+		<add key="aspnet:MaxJsonDeserializerMembers" value="100000" />
+	</appSettings>
+</configuration>
diff --git a/doc/ref/csharp/html/WebKI.xml b/doc/ref/csharp/html/WebKI.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1318ed5f171365e1faf147c3893e0a40f164b07a
--- /dev/null
+++ b/doc/ref/csharp/html/WebKI.xml
@@ -0,0 +1,1005 @@
+<?xml version="1.0" encoding="utf-8"?>
+<HelpKI>
+  <HelpKINode Title="Aborted enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Add method">
+    <HelpKINode Title="Metadata.Add Method " Url="html/Overload_Grpc_Core_Metadata_Add.htm" />
+    <HelpKINode Title="Server.ServiceDefinitionCollection.Add Method " Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm" />
+    <HelpKINode Title="ServerPortCollection.Add Method " Url="html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AddMethod method" Url="html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" />
+  <HelpKINode Title="AlreadyExists enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse) class">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+    <HelpKINode Title="about AsyncClientStreamingCall(Of TRequest, TResponse) class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse).Dispose method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse).GetAwaiter method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse).GetStatus method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse).GetTrailers method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse).RequestStream property" Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse).ResponseAsync property" Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall(Of TRequest, TResponse).ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt; class">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+    <HelpKINode Title="about AsyncClientStreamingCall&lt;TRequest, TResponse&gt; class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt;.Dispose method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt;.GetAwaiter method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt;.GetStatus method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt;.GetTrailers method" Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt;.RequestStream property" Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt;.ResponseAsync property" Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" />
+  <HelpKINode Title="AsyncClientStreamingCall&lt;TRequest, TResponse&gt;.ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse) class">
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+    <HelpKINode Title="about AsyncDuplexStreamingCall(Of TRequest, TResponse) class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse).Dispose method" Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse).GetStatus method" Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse).GetTrailers method" Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse).RequestStream property" Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse).ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall(Of TRequest, TResponse).ResponseStream property" Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; class">
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+    <HelpKINode Title="about AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;.Dispose method" Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;.GetStatus method" Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;.GetTrailers method" Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;.RequestStream property" Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;.ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt;.ResponseStream property" Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall(Of TResponse) class">
+    <HelpKINode Title="AsyncServerStreamingCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+    <HelpKINode Title="about AsyncServerStreamingCall(Of TResponse) class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncServerStreamingCall(Of TResponse).Dispose method" Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall(Of TResponse).GetStatus method" Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall(Of TResponse).GetTrailers method" Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall(Of TResponse).ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall(Of TResponse).ResponseStream property" Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall&lt;TResponse&gt; class">
+    <HelpKINode Title="AsyncServerStreamingCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+    <HelpKINode Title="about AsyncServerStreamingCall&lt;TResponse&gt; class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncServerStreamingCall&lt;TResponse&gt;.Dispose method" Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall&lt;TResponse&gt;.GetStatus method" Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall&lt;TResponse&gt;.GetTrailers method" Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall&lt;TResponse&gt;.ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AsyncServerStreamingCall&lt;TResponse&gt;.ResponseStream property" Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" />
+  <HelpKINode Title="AsyncStreamExtensions class">
+    <HelpKINode Title="AsyncStreamExtensions Class" Url="html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm" />
+    <HelpKINode Title="about AsyncStreamExtensions class" Url="html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncStreamExtensions.ForEachAsync(Of T) method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" />
+  <HelpKINode Title="AsyncStreamExtensions.ForEachAsync&lt;T&gt; method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" />
+  <HelpKINode Title="AsyncStreamExtensions.ToListAsync(Of T) method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" />
+  <HelpKINode Title="AsyncStreamExtensions.ToListAsync&lt;T&gt; method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" />
+  <HelpKINode Title="AsyncStreamExtensions.WriteAllAsync method" Url="html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" />
+  <HelpKINode Title="AsyncUnaryCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" />
+  <HelpKINode Title="AsyncUnaryCall(Of TResponse) class">
+    <HelpKINode Title="AsyncUnaryCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm" />
+    <HelpKINode Title="about AsyncUnaryCall(Of TResponse) class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncUnaryCall(Of TResponse).Dispose method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" />
+  <HelpKINode Title="AsyncUnaryCall(Of TResponse).GetAwaiter method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" />
+  <HelpKINode Title="AsyncUnaryCall(Of TResponse).GetStatus method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" />
+  <HelpKINode Title="AsyncUnaryCall(Of TResponse).GetTrailers method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" />
+  <HelpKINode Title="AsyncUnaryCall(Of TResponse).ResponseAsync property" Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" />
+  <HelpKINode Title="AsyncUnaryCall(Of TResponse).ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AsyncUnaryCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" />
+  <HelpKINode Title="AsyncUnaryCall&lt;TResponse&gt; class">
+    <HelpKINode Title="AsyncUnaryCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm" />
+    <HelpKINode Title="about AsyncUnaryCall&lt;TResponse&gt; class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AsyncUnaryCall&lt;TResponse&gt;.Dispose method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" />
+  <HelpKINode Title="AsyncUnaryCall&lt;TResponse&gt;.GetAwaiter method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" />
+  <HelpKINode Title="AsyncUnaryCall&lt;TResponse&gt;.GetStatus method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" />
+  <HelpKINode Title="AsyncUnaryCall&lt;TResponse&gt;.GetTrailers method" Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" />
+  <HelpKINode Title="AsyncUnaryCall&lt;TResponse&gt;.ResponseAsync property" Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" />
+  <HelpKINode Title="AsyncUnaryCall&lt;TResponse&gt;.ResponseHeadersAsync property" Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" />
+  <HelpKINode Title="AuthInterceptors class">
+    <HelpKINode Title="AuthInterceptors Class" Url="html/T_Grpc_Auth_AuthInterceptors.htm" />
+    <HelpKINode Title="about AuthInterceptors class" Url="html/T_Grpc_Auth_AuthInterceptors.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Auth_AuthInterceptors.htm" />
+  </HelpKINode>
+  <HelpKINode Title="AuthInterceptors.FromAccessToken method" Url="html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm" />
+  <HelpKINode Title="AuthInterceptors.FromCredential method" Url="html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm" />
+  <HelpKINode Title="BenchmarkUtil class">
+    <HelpKINode Title="BenchmarkUtil Class" Url="html/T_Grpc_Core_Utils_BenchmarkUtil.htm" />
+    <HelpKINode Title="about BenchmarkUtil class" Url="html/T_Grpc_Core_Utils_BenchmarkUtil.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm" />
+  </HelpKINode>
+  <HelpKINode Title="BenchmarkUtil.RunBenchmark method" Url="html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm" />
+  <HelpKINode Title="BinaryHeaderSuffix field" Url="html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm" />
+  <HelpKINode Title="BlockingUnaryCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" />
+  <HelpKINode Title="BlockingUnaryCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" />
+  <HelpKINode Title="BoundPort property" Url="html/P_Grpc_Core_ServerPort_BoundPort.htm" />
+  <HelpKINode Title="BufferHint enumeration member" Url="html/T_Grpc_Core_WriteFlags.htm" />
+  <HelpKINode Title="Build method" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm" />
+  <HelpKINode Title="Builder class">
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" />
+  </HelpKINode>
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse) structure">
+    <HelpKINode Title="CallInvocationDetails(TRequest, TResponse) Structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm" />
+    <HelpKINode Title="about CallInvocationDetails(Of TRequest, TResponse) structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).CallInvocationDetails constructor" Url="html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" />
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).Channel property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm" />
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).Host property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Host.htm" />
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).Method property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Method.htm" />
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).Options property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Options.htm" />
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).RequestMarshaller property" Url="html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" />
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).ResponseMarshaller property" Url="html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" />
+  <HelpKINode Title="CallInvocationDetails(Of TRequest, TResponse).WithOptions method" Url="html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt; structure">
+    <HelpKINode Title="CallInvocationDetails(TRequest, TResponse) Structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm" />
+    <HelpKINode Title="about CallInvocationDetails&lt;TRequest, TResponse&gt; structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.CallInvocationDetails constructor" Url="html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.Channel property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.Host property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Host.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.Method property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Method.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.Options property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Options.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.RequestMarshaller property" Url="html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.ResponseMarshaller property" Url="html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" />
+  <HelpKINode Title="CallInvocationDetails&lt;TRequest, TResponse&gt;.WithOptions method" Url="html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm" />
+  <HelpKINode Title="CallOptions structure">
+    <HelpKINode Title="CallOptions Structure" Url="html/T_Grpc_Core_CallOptions.htm" />
+    <HelpKINode Title="about CallOptions structure" Url="html/T_Grpc_Core_CallOptions.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_CallOptions__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_CallOptions.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_CallOptions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="CallOptions.CallOptions constructor" Url="html/M_Grpc_Core_CallOptions__ctor.htm" />
+  <HelpKINode Title="CallOptions.CancellationToken property" Url="html/P_Grpc_Core_CallOptions_CancellationToken.htm" />
+  <HelpKINode Title="CallOptions.Deadline property" Url="html/P_Grpc_Core_CallOptions_Deadline.htm" />
+  <HelpKINode Title="CallOptions.Headers property" Url="html/P_Grpc_Core_CallOptions_Headers.htm" />
+  <HelpKINode Title="CallOptions.PropagationToken property" Url="html/P_Grpc_Core_CallOptions_PropagationToken.htm" />
+  <HelpKINode Title="CallOptions.WithCancellationToken method" Url="html/M_Grpc_Core_CallOptions_WithCancellationToken.htm" />
+  <HelpKINode Title="CallOptions.WithDeadline method" Url="html/M_Grpc_Core_CallOptions_WithDeadline.htm" />
+  <HelpKINode Title="CallOptions.WithHeaders method" Url="html/M_Grpc_Core_CallOptions_WithHeaders.htm" />
+  <HelpKINode Title="CallOptions.WriteOptions property" Url="html/P_Grpc_Core_CallOptions_WriteOptions.htm" />
+  <HelpKINode Title="Calls class">
+    <HelpKINode Title="Calls Class" Url="html/T_Grpc_Core_Calls.htm" />
+    <HelpKINode Title="about Calls class" Url="html/T_Grpc_Core_Calls.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Calls.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Calls.AsyncClientStreamingCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" />
+  <HelpKINode Title="Calls.AsyncClientStreamingCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" />
+  <HelpKINode Title="Calls.AsyncDuplexStreamingCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" />
+  <HelpKINode Title="Calls.AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" />
+  <HelpKINode Title="Calls.AsyncServerStreamingCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" />
+  <HelpKINode Title="Calls.AsyncServerStreamingCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" />
+  <HelpKINode Title="Calls.AsyncUnaryCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" />
+  <HelpKINode Title="Calls.AsyncUnaryCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" />
+  <HelpKINode Title="Calls.BlockingUnaryCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" />
+  <HelpKINode Title="Calls.BlockingUnaryCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" />
+  <HelpKINode Title="CancellationToken property">
+    <HelpKINode Title="CallOptions.CancellationToken Property " Url="html/P_Grpc_Core_CallOptions_CancellationToken.htm" />
+    <HelpKINode Title="ServerCallContext.CancellationToken Property " Url="html/P_Grpc_Core_ServerCallContext_CancellationToken.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Cancelled enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Census field" Url="html/F_Grpc_Core_ChannelOptions_Census.htm" />
+  <HelpKINode Title="CertificateChain property" Url="html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm" />
+  <HelpKINode Title="Channel class">
+    <HelpKINode Title="Channel Class" Url="html/T_Grpc_Core_Channel.htm" />
+    <HelpKINode Title="about Channel class" Url="html/T_Grpc_Core_Channel.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_Channel__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Channel.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Channel.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Channel property">
+    <HelpKINode Title="CallInvocationDetails(TRequest, TResponse).Channel Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm" />
+    <HelpKINode Title="ClientBase.Channel Property " Url="html/P_Grpc_Core_ClientBase_Channel.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Channel.Channel constructor" Url="html/Overload_Grpc_Core_Channel__ctor.htm" />
+  <HelpKINode Title="Channel.ConnectAsync method" Url="html/M_Grpc_Core_Channel_ConnectAsync.htm" />
+  <HelpKINode Title="Channel.ResolvedTarget property" Url="html/P_Grpc_Core_Channel_ResolvedTarget.htm" />
+  <HelpKINode Title="Channel.ShutdownAsync method" Url="html/M_Grpc_Core_Channel_ShutdownAsync.htm" />
+  <HelpKINode Title="Channel.State property" Url="html/P_Grpc_Core_Channel_State.htm" />
+  <HelpKINode Title="Channel.Target property" Url="html/P_Grpc_Core_Channel_Target.htm" />
+  <HelpKINode Title="Channel.WaitForStateChangedAsync method" Url="html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" />
+  <HelpKINode Title="ChannelOption class">
+    <HelpKINode Title="ChannelOption Class" Url="html/T_Grpc_Core_ChannelOption.htm" />
+    <HelpKINode Title="about ChannelOption class" Url="html/T_Grpc_Core_ChannelOption.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_ChannelOption__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ChannelOption.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_ChannelOption.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ChannelOption.ChannelOption constructor" Url="html/Overload_Grpc_Core_ChannelOption__ctor.htm" />
+  <HelpKINode Title="ChannelOption.IntValue property" Url="html/P_Grpc_Core_ChannelOption_IntValue.htm" />
+  <HelpKINode Title="ChannelOption.Name property" Url="html/P_Grpc_Core_ChannelOption_Name.htm" />
+  <HelpKINode Title="ChannelOption.OptionType enumeration" Url="html/T_Grpc_Core_ChannelOption_OptionType.htm" />
+  <HelpKINode Title="ChannelOption.StringValue property" Url="html/P_Grpc_Core_ChannelOption_StringValue.htm" />
+  <HelpKINode Title="ChannelOption.Type property" Url="html/P_Grpc_Core_ChannelOption_Type.htm" />
+  <HelpKINode Title="ChannelOptions class">
+    <HelpKINode Title="ChannelOptions Class" Url="html/T_Grpc_Core_ChannelOptions.htm" />
+    <HelpKINode Title="about ChannelOptions class" Url="html/T_Grpc_Core_ChannelOptions.htm" />
+    <HelpKINode Title="fields" Url="html/Fields_T_Grpc_Core_ChannelOptions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ChannelOptions.Census field" Url="html/F_Grpc_Core_ChannelOptions_Census.htm" />
+  <HelpKINode Title="ChannelOptions.DefaultAuthority field" Url="html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" />
+  <HelpKINode Title="ChannelOptions.Http2InitialSequenceNumber field" Url="html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" />
+  <HelpKINode Title="ChannelOptions.MaxConcurrentStreams field" Url="html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" />
+  <HelpKINode Title="ChannelOptions.MaxMessageLength field" Url="html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" />
+  <HelpKINode Title="ChannelOptions.PrimaryUserAgentString field" Url="html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" />
+  <HelpKINode Title="ChannelOptions.SecondaryUserAgentString field" Url="html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" />
+  <HelpKINode Title="ChannelOptions.SslTargetNameOverride field" Url="html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" />
+  <HelpKINode Title="ChannelState enumeration" Url="html/T_Grpc_Core_ChannelState.htm" />
+  <HelpKINode Title="CheckArgument method" Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm" />
+  <HelpKINode Title="CheckNotNull method" Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm" />
+  <HelpKINode Title="CheckState method" Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm" />
+  <HelpKINode Title="Clear method" Url="html/M_Grpc_Core_Metadata_Clear.htm" />
+  <HelpKINode Title="ClientBase class">
+    <HelpKINode Title="ClientBase Class" Url="html/T_Grpc_Core_ClientBase.htm" />
+    <HelpKINode Title="about ClientBase class" Url="html/T_Grpc_Core_ClientBase.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_ClientBase__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ClientBase.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_ClientBase.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ClientBase.Channel property" Url="html/P_Grpc_Core_ClientBase_Channel.htm" />
+  <HelpKINode Title="ClientBase.ClientBase constructor" Url="html/M_Grpc_Core_ClientBase__ctor.htm" />
+  <HelpKINode Title="ClientBase.CreateCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_ClientBase_CreateCall__2.htm" />
+  <HelpKINode Title="ClientBase.CreateCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_ClientBase_CreateCall__2.htm" />
+  <HelpKINode Title="ClientBase.HeaderInterceptor property" Url="html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm" />
+  <HelpKINode Title="ClientBase.Host property" Url="html/P_Grpc_Core_ClientBase_Host.htm" />
+  <HelpKINode Title="ClientStreaming enumeration member" Url="html/T_Grpc_Core_MethodType.htm" />
+  <HelpKINode Title="ClientStreamingServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_ClientStreamingServerMethod_2.htm" />
+  <HelpKINode Title="ClientStreamingServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_ClientStreamingServerMethod_2.htm" />
+  <HelpKINode Title="CompleteAsync method" Url="html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm" />
+  <HelpKINode Title="CompressionLevel enumeration" Url="html/T_Grpc_Core_CompressionLevel.htm" />
+  <HelpKINode Title="ConnectAsync method" Url="html/M_Grpc_Core_Channel_ConnectAsync.htm" />
+  <HelpKINode Title="Connecting enumeration member" Url="html/T_Grpc_Core_ChannelState.htm" />
+  <HelpKINode Title="ConsoleLogger class">
+    <HelpKINode Title="ConsoleLogger Class" Url="html/T_Grpc_Core_Logging_ConsoleLogger.htm" />
+    <HelpKINode Title="about ConsoleLogger class" Url="html/T_Grpc_Core_Logging_ConsoleLogger.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ConsoleLogger.ConsoleLogger constructor" Url="html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm" />
+  <HelpKINode Title="ConsoleLogger.Debug method" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" />
+  <HelpKINode Title="ConsoleLogger.Error method" Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" />
+  <HelpKINode Title="ConsoleLogger.ForType(Of T) method" Url="html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" />
+  <HelpKINode Title="ConsoleLogger.ForType&lt;T&gt; method" Url="html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" />
+  <HelpKINode Title="ConsoleLogger.Info method" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm" />
+  <HelpKINode Title="ConsoleLogger.Warning method" Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" />
+  <HelpKINode Title="Contains method" Url="html/M_Grpc_Core_Metadata_Contains.htm" />
+  <HelpKINode Title="ContextPropagationOptions class">
+    <HelpKINode Title="ContextPropagationOptions Class" Url="html/T_Grpc_Core_ContextPropagationOptions.htm" />
+    <HelpKINode Title="about ContextPropagationOptions class" Url="html/T_Grpc_Core_ContextPropagationOptions.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_ContextPropagationOptions__ctor.htm" />
+    <HelpKINode Title="fields" Url="html/Fields_T_Grpc_Core_ContextPropagationOptions.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ContextPropagationOptions.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_ContextPropagationOptions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ContextPropagationOptions.ContextPropagationOptions constructor" Url="html/M_Grpc_Core_ContextPropagationOptions__ctor.htm" />
+  <HelpKINode Title="ContextPropagationOptions.Default field" Url="html/F_Grpc_Core_ContextPropagationOptions_Default.htm" />
+  <HelpKINode Title="ContextPropagationOptions.IsPropagateCancellation property" Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm" />
+  <HelpKINode Title="ContextPropagationOptions.IsPropagateDeadline property" Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm" />
+  <HelpKINode Title="ContextPropagationToken class">
+    <HelpKINode Title="ContextPropagationToken Class" Url="html/T_Grpc_Core_ContextPropagationToken.htm" />
+    <HelpKINode Title="about ContextPropagationToken class" Url="html/T_Grpc_Core_ContextPropagationToken.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ContextPropagationToken.htm" />
+  </HelpKINode>
+  <HelpKINode Title="CopyTo method" Url="html/M_Grpc_Core_Metadata_CopyTo.htm" />
+  <HelpKINode Title="Count property" Url="html/P_Grpc_Core_Metadata_Count.htm" />
+  <HelpKINode Title="Create(Of T) method" Url="html/M_Grpc_Core_Marshallers_Create__1.htm" />
+  <HelpKINode Title="Create&lt;T&gt; method" Url="html/M_Grpc_Core_Marshallers_Create__1.htm" />
+  <HelpKINode Title="CreateBuilder method" Url="html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm" />
+  <HelpKINode Title="CreateCall(Of TRequest, TResponse) method" Url="html/M_Grpc_Core_ClientBase_CreateCall__2.htm" />
+  <HelpKINode Title="CreateCall&lt;TRequest, TResponse&gt; method" Url="html/M_Grpc_Core_ClientBase_CreateCall__2.htm" />
+  <HelpKINode Title="CreatePropagationToken method" Url="html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm" />
+  <HelpKINode Title="Credentials class">
+    <HelpKINode Title="Credentials Class" Url="html/T_Grpc_Core_Credentials.htm" />
+    <HelpKINode Title="about Credentials class" Url="html/T_Grpc_Core_Credentials.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Credentials__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Credentials.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Credentials.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Credentials property" Url="html/P_Grpc_Core_ServerPort_Credentials.htm" />
+  <HelpKINode Title="Credentials.Credentials constructor" Url="html/M_Grpc_Core_Credentials__ctor.htm" />
+  <HelpKINode Title="Credentials.Insecure property" Url="html/P_Grpc_Core_Credentials_Insecure.htm" />
+  <HelpKINode Title="CurrentVersion field" Url="html/F_Grpc_Core_VersionInfo_CurrentVersion.htm" />
+  <HelpKINode Title="DataLoss enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Deadline property">
+    <HelpKINode Title="CallOptions.Deadline Property " Url="html/P_Grpc_Core_CallOptions_Deadline.htm" />
+    <HelpKINode Title="ServerCallContext.Deadline Property " Url="html/P_Grpc_Core_ServerCallContext_Deadline.htm" />
+  </HelpKINode>
+  <HelpKINode Title="DeadlineExceeded enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Debug method">
+    <HelpKINode Title="ConsoleLogger.Debug Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" />
+    <HelpKINode Title="ILogger.Debug Method " Url="html/M_Grpc_Core_Logging_ILogger_Debug.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Default field">
+    <HelpKINode Title="ContextPropagationOptions.Default Field" Url="html/F_Grpc_Core_ContextPropagationOptions_Default.htm" />
+    <HelpKINode Title="WriteOptions.Default Field" Url="html/F_Grpc_Core_WriteOptions_Default.htm" />
+  </HelpKINode>
+  <HelpKINode Title="DefaultAuthority field" Url="html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" />
+  <HelpKINode Title="DefaultCancelled field" Url="html/F_Grpc_Core_Status_DefaultCancelled.htm" />
+  <HelpKINode Title="DefaultSuccess field" Url="html/F_Grpc_Core_Status_DefaultSuccess.htm" />
+  <HelpKINode Title="Deserializer property" Url="html/P_Grpc_Core_Marshaller_1_Deserializer.htm" />
+  <HelpKINode Title="Detail property" Url="html/P_Grpc_Core_Status_Detail.htm" />
+  <HelpKINode Title="Dispose method">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse).Dispose Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" />
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse).Dispose Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" />
+    <HelpKINode Title="AsyncServerStreamingCall(TResponse).Dispose Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" />
+    <HelpKINode Title="AsyncUnaryCall(TResponse).Dispose Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" />
+  </HelpKINode>
+  <HelpKINode Title="DuplexStreaming enumeration member" Url="html/T_Grpc_Core_MethodType.htm" />
+  <HelpKINode Title="DuplexStreamingServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm" />
+  <HelpKINode Title="DuplexStreamingServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm" />
+  <HelpKINode Title="Empty field" Url="html/F_Grpc_Core_Metadata_Empty.htm" />
+  <HelpKINode Title="Entry structure">
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Metadata_Entry.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Metadata_Entry.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Error method">
+    <HelpKINode Title="ConsoleLogger.Error Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" />
+    <HelpKINode Title="ILogger.Error Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Error.htm" />
+  </HelpKINode>
+  <HelpKINode Title="FailedPrecondition enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="FatalFailure enumeration member" Url="html/T_Grpc_Core_ChannelState.htm" />
+  <HelpKINode Title="Flags property" Url="html/P_Grpc_Core_WriteOptions_Flags.htm" />
+  <HelpKINode Title="ForceClientAuthentication property" Url="html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" />
+  <HelpKINode Title="ForEachAsync(Of T) method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" />
+  <HelpKINode Title="ForEachAsync&lt;T&gt; method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" />
+  <HelpKINode Title="ForType(Of T) method">
+    <HelpKINode Title="ConsoleLogger.ForType(T) Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" />
+    <HelpKINode Title="ILogger.ForType(T) Method " Url="html/M_Grpc_Core_Logging_ILogger_ForType__1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ForType&lt;T&gt; method">
+    <HelpKINode Title="ConsoleLogger.ForType(T) Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" />
+    <HelpKINode Title="ILogger.ForType(T) Method " Url="html/M_Grpc_Core_Logging_ILogger_ForType__1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="FromAccessToken method" Url="html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm" />
+  <HelpKINode Title="FromCredential method" Url="html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm" />
+  <HelpKINode Title="FullName property">
+    <HelpKINode Title="IMethod.FullName Property " Url="html/P_Grpc_Core_IMethod_FullName.htm" />
+    <HelpKINode Title="Method(TRequest, TResponse).FullName Property " Url="html/P_Grpc_Core_Method_2_FullName.htm" />
+  </HelpKINode>
+  <HelpKINode Title="GetAwaiter method">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse).GetAwaiter Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" />
+    <HelpKINode Title="AsyncUnaryCall(TResponse).GetAwaiter Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" />
+  </HelpKINode>
+  <HelpKINode Title="GetEnumerator method">
+    <HelpKINode Title="Metadata.GetEnumerator Method " Url="html/M_Grpc_Core_Metadata_GetEnumerator.htm" />
+    <HelpKINode Title="Server.ServerPortCollection.GetEnumerator Method " Url="html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm" />
+    <HelpKINode Title="Server.ServiceDefinitionCollection.GetEnumerator Method " Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm" />
+  </HelpKINode>
+  <HelpKINode Title="GetStatus method">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse).GetStatus Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" />
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse).GetStatus Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" />
+    <HelpKINode Title="AsyncServerStreamingCall(TResponse).GetStatus Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" />
+    <HelpKINode Title="AsyncUnaryCall(TResponse).GetStatus Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" />
+  </HelpKINode>
+  <HelpKINode Title="GetTrailers method">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse).GetTrailers Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" />
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse).GetTrailers Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" />
+    <HelpKINode Title="AsyncServerStreamingCall(TResponse).GetTrailers Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" />
+    <HelpKINode Title="AsyncUnaryCall(TResponse).GetTrailers Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Grpc.Auth namespace" Url="html/N_Grpc_Auth.htm" />
+  <HelpKINode Title="Grpc.Auth.AuthInterceptors class" Url="html/T_Grpc_Auth_AuthInterceptors.htm" />
+  <HelpKINode Title="Grpc.Core namespace" Url="html/N_Grpc_Core.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncClientStreamingCall(Of TRequest, TResponse) class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncClientStreamingCall&lt;TRequest, TResponse&gt; class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncDuplexStreamingCall(Of TRequest, TResponse) class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncDuplexStreamingCall&lt;TRequest, TResponse&gt; class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncServerStreamingCall(Of TResponse) class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncServerStreamingCall&lt;TResponse&gt; class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncUnaryCall(Of TResponse) class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm" />
+  <HelpKINode Title="Grpc.Core.AsyncUnaryCall&lt;TResponse&gt; class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm" />
+  <HelpKINode Title="Grpc.Core.CallInvocationDetails(Of TRequest, TResponse) structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm" />
+  <HelpKINode Title="Grpc.Core.CallInvocationDetails&lt;TRequest, TResponse&gt; structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm" />
+  <HelpKINode Title="Grpc.Core.CallOptions structure" Url="html/T_Grpc_Core_CallOptions.htm" />
+  <HelpKINode Title="Grpc.Core.Calls class" Url="html/T_Grpc_Core_Calls.htm" />
+  <HelpKINode Title="Grpc.Core.Channel class" Url="html/T_Grpc_Core_Channel.htm" />
+  <HelpKINode Title="Grpc.Core.ChannelOption class" Url="html/T_Grpc_Core_ChannelOption.htm" />
+  <HelpKINode Title="Grpc.Core.ChannelOption.OptionType enumeration" Url="html/T_Grpc_Core_ChannelOption_OptionType.htm" />
+  <HelpKINode Title="Grpc.Core.ChannelOptions class" Url="html/T_Grpc_Core_ChannelOptions.htm" />
+  <HelpKINode Title="Grpc.Core.ChannelState enumeration" Url="html/T_Grpc_Core_ChannelState.htm" />
+  <HelpKINode Title="Grpc.Core.ClientBase class" Url="html/T_Grpc_Core_ClientBase.htm" />
+  <HelpKINode Title="Grpc.Core.ClientStreamingServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_ClientStreamingServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.ClientStreamingServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_ClientStreamingServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.CompressionLevel enumeration" Url="html/T_Grpc_Core_CompressionLevel.htm" />
+  <HelpKINode Title="Grpc.Core.ContextPropagationOptions class" Url="html/T_Grpc_Core_ContextPropagationOptions.htm" />
+  <HelpKINode Title="Grpc.Core.ContextPropagationToken class" Url="html/T_Grpc_Core_ContextPropagationToken.htm" />
+  <HelpKINode Title="Grpc.Core.Credentials class" Url="html/T_Grpc_Core_Credentials.htm" />
+  <HelpKINode Title="Grpc.Core.DuplexStreamingServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.DuplexStreamingServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.GrpcEnvironment class" Url="html/T_Grpc_Core_GrpcEnvironment.htm" />
+  <HelpKINode Title="Grpc.Core.HeaderInterceptor delegate" Url="html/T_Grpc_Core_HeaderInterceptor.htm" />
+  <HelpKINode Title="Grpc.Core.IAsyncStreamReader(Of T) interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm" />
+  <HelpKINode Title="Grpc.Core.IAsyncStreamReader&lt;T&gt; interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm" />
+  <HelpKINode Title="Grpc.Core.IAsyncStreamWriter(Of T) interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+  <HelpKINode Title="Grpc.Core.IAsyncStreamWriter&lt;T&gt; interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+  <HelpKINode Title="Grpc.Core.IClientStreamWriter(Of T) interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm" />
+  <HelpKINode Title="Grpc.Core.IClientStreamWriter&lt;T&gt; interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm" />
+  <HelpKINode Title="Grpc.Core.IHasWriteOptions interface" Url="html/T_Grpc_Core_IHasWriteOptions.htm" />
+  <HelpKINode Title="Grpc.Core.IMethod interface" Url="html/T_Grpc_Core_IMethod.htm" />
+  <HelpKINode Title="Grpc.Core.IServerStreamWriter(Of T) interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm" />
+  <HelpKINode Title="Grpc.Core.IServerStreamWriter&lt;T&gt; interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm" />
+  <HelpKINode Title="Grpc.Core.KeyCertificatePair class" Url="html/T_Grpc_Core_KeyCertificatePair.htm" />
+  <HelpKINode Title="Grpc.Core.Logging namespace" Url="html/N_Grpc_Core_Logging.htm" />
+  <HelpKINode Title="Grpc.Core.Logging.ConsoleLogger class" Url="html/T_Grpc_Core_Logging_ConsoleLogger.htm" />
+  <HelpKINode Title="Grpc.Core.Logging.ILogger interface" Url="html/T_Grpc_Core_Logging_ILogger.htm" />
+  <HelpKINode Title="Grpc.Core.Marshaller(Of T) structure" Url="html/T_Grpc_Core_Marshaller_1.htm" />
+  <HelpKINode Title="Grpc.Core.Marshaller&lt;T&gt; structure" Url="html/T_Grpc_Core_Marshaller_1.htm" />
+  <HelpKINode Title="Grpc.Core.Marshallers class" Url="html/T_Grpc_Core_Marshallers.htm" />
+  <HelpKINode Title="Grpc.Core.Metadata class" Url="html/T_Grpc_Core_Metadata.htm" />
+  <HelpKINode Title="Grpc.Core.Metadata.Entry structure" Url="html/T_Grpc_Core_Metadata_Entry.htm" />
+  <HelpKINode Title="Grpc.Core.Method(Of TRequest, TResponse) class" Url="html/T_Grpc_Core_Method_2.htm" />
+  <HelpKINode Title="Grpc.Core.Method&lt;TRequest, TResponse&gt; class" Url="html/T_Grpc_Core_Method_2.htm" />
+  <HelpKINode Title="Grpc.Core.MethodType enumeration" Url="html/T_Grpc_Core_MethodType.htm" />
+  <HelpKINode Title="Grpc.Core.RpcException class" Url="html/T_Grpc_Core_RpcException.htm" />
+  <HelpKINode Title="Grpc.Core.Server class" Url="html/T_Grpc_Core_Server.htm" />
+  <HelpKINode Title="Grpc.Core.Server.ServerPortCollection class" Url="html/T_Grpc_Core_Server_ServerPortCollection.htm" />
+  <HelpKINode Title="Grpc.Core.Server.ServiceDefinitionCollection class" Url="html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm" />
+  <HelpKINode Title="Grpc.Core.ServerCallContext class" Url="html/T_Grpc_Core_ServerCallContext.htm" />
+  <HelpKINode Title="Grpc.Core.ServerCredentials class" Url="html/T_Grpc_Core_ServerCredentials.htm" />
+  <HelpKINode Title="Grpc.Core.ServerPort class" Url="html/T_Grpc_Core_ServerPort.htm" />
+  <HelpKINode Title="Grpc.Core.ServerServiceDefinition class" Url="html/T_Grpc_Core_ServerServiceDefinition.htm" />
+  <HelpKINode Title="Grpc.Core.ServerServiceDefinition.Builder class" Url="html/T_Grpc_Core_ServerServiceDefinition_Builder.htm" />
+  <HelpKINode Title="Grpc.Core.ServerStreamingServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_ServerStreamingServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.ServerStreamingServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_ServerStreamingServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.SslCredentials class" Url="html/T_Grpc_Core_SslCredentials.htm" />
+  <HelpKINode Title="Grpc.Core.SslServerCredentials class" Url="html/T_Grpc_Core_SslServerCredentials.htm" />
+  <HelpKINode Title="Grpc.Core.Status structure" Url="html/T_Grpc_Core_Status.htm" />
+  <HelpKINode Title="Grpc.Core.StatusCode enumeration" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Grpc.Core.UnaryServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_UnaryServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.UnaryServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_UnaryServerMethod_2.htm" />
+  <HelpKINode Title="Grpc.Core.Utils namespace" Url="html/N_Grpc_Core_Utils.htm" />
+  <HelpKINode Title="Grpc.Core.Utils.AsyncStreamExtensions class" Url="html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm" />
+  <HelpKINode Title="Grpc.Core.Utils.BenchmarkUtil class" Url="html/T_Grpc_Core_Utils_BenchmarkUtil.htm" />
+  <HelpKINode Title="Grpc.Core.Utils.Preconditions class" Url="html/T_Grpc_Core_Utils_Preconditions.htm" />
+  <HelpKINode Title="Grpc.Core.VersionInfo class" Url="html/T_Grpc_Core_VersionInfo.htm" />
+  <HelpKINode Title="Grpc.Core.WriteFlags enumeration" Url="html/T_Grpc_Core_WriteFlags.htm" />
+  <HelpKINode Title="Grpc.Core.WriteOptions class" Url="html/T_Grpc_Core_WriteOptions.htm" />
+  <HelpKINode Title="GrpcEnvironment class">
+    <HelpKINode Title="GrpcEnvironment Class" Url="html/T_Grpc_Core_GrpcEnvironment.htm" />
+    <HelpKINode Title="about GrpcEnvironment class" Url="html/T_Grpc_Core_GrpcEnvironment.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_GrpcEnvironment.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_GrpcEnvironment.htm" />
+  </HelpKINode>
+  <HelpKINode Title="GrpcEnvironment.Logger property" Url="html/P_Grpc_Core_GrpcEnvironment_Logger.htm" />
+  <HelpKINode Title="GrpcEnvironment.SetLogger method" Url="html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm" />
+  <HelpKINode Title="HeaderInterceptor delegate" Url="html/T_Grpc_Core_HeaderInterceptor.htm" />
+  <HelpKINode Title="HeaderInterceptor property" Url="html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm" />
+  <HelpKINode Title="Headers property" Url="html/P_Grpc_Core_CallOptions_Headers.htm" />
+  <HelpKINode Title="High enumeration member" Url="html/T_Grpc_Core_CompressionLevel.htm" />
+  <HelpKINode Title="Host property">
+    <HelpKINode Title="CallInvocationDetails(TRequest, TResponse).Host Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Host.htm" />
+    <HelpKINode Title="ClientBase.Host Property " Url="html/P_Grpc_Core_ClientBase_Host.htm" />
+    <HelpKINode Title="ServerCallContext.Host Property " Url="html/P_Grpc_Core_ServerCallContext_Host.htm" />
+    <HelpKINode Title="ServerPort.Host Property " Url="html/P_Grpc_Core_ServerPort_Host.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Http2InitialSequenceNumber field" Url="html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" />
+  <HelpKINode Title="IAsyncStreamReader(Of T) interface">
+    <HelpKINode Title="IAsyncStreamReader(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm" />
+    <HelpKINode Title="about IAsyncStreamReader(Of T) interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IAsyncStreamReader&lt;T&gt; interface">
+    <HelpKINode Title="IAsyncStreamReader(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm" />
+    <HelpKINode Title="about IAsyncStreamReader&lt;T&gt; interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IAsyncStreamWriter(Of T) interface">
+    <HelpKINode Title="IAsyncStreamWriter(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+    <HelpKINode Title="about IAsyncStreamWriter(Of T) interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IAsyncStreamWriter(Of T).WriteAsync method" Url="html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm" />
+  <HelpKINode Title="IAsyncStreamWriter(Of T).WriteOptions property" Url="html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm" />
+  <HelpKINode Title="IAsyncStreamWriter&lt;T&gt; interface">
+    <HelpKINode Title="IAsyncStreamWriter(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+    <HelpKINode Title="about IAsyncStreamWriter&lt;T&gt; interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IAsyncStreamWriter&lt;T&gt;.WriteAsync method" Url="html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm" />
+  <HelpKINode Title="IAsyncStreamWriter&lt;T&gt;.WriteOptions property" Url="html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm" />
+  <HelpKINode Title="IClientStreamWriter(Of T) interface">
+    <HelpKINode Title="IClientStreamWriter(T) Interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm" />
+    <HelpKINode Title="about IClientStreamWriter(Of T) interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IClientStreamWriter(Of T).CompleteAsync method" Url="html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm" />
+  <HelpKINode Title="IClientStreamWriter&lt;T&gt; interface">
+    <HelpKINode Title="IClientStreamWriter(T) Interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm" />
+    <HelpKINode Title="about IClientStreamWriter&lt;T&gt; interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IClientStreamWriter&lt;T&gt;.CompleteAsync method" Url="html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm" />
+  <HelpKINode Title="Idle enumeration member" Url="html/T_Grpc_Core_ChannelState.htm" />
+  <HelpKINode Title="IHasWriteOptions interface">
+    <HelpKINode Title="IHasWriteOptions Interface" Url="html/T_Grpc_Core_IHasWriteOptions.htm" />
+    <HelpKINode Title="about IHasWriteOptions interface" Url="html/T_Grpc_Core_IHasWriteOptions.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IHasWriteOptions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IHasWriteOptions.WriteOptions property" Url="html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm" />
+  <HelpKINode Title="ILogger interface">
+    <HelpKINode Title="ILogger Interface" Url="html/T_Grpc_Core_Logging_ILogger.htm" />
+    <HelpKINode Title="about ILogger interface" Url="html/T_Grpc_Core_Logging_ILogger.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Logging_ILogger.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ILogger.Debug method" Url="html/M_Grpc_Core_Logging_ILogger_Debug.htm" />
+  <HelpKINode Title="ILogger.Error method" Url="html/Overload_Grpc_Core_Logging_ILogger_Error.htm" />
+  <HelpKINode Title="ILogger.ForType(Of T) method" Url="html/M_Grpc_Core_Logging_ILogger_ForType__1.htm" />
+  <HelpKINode Title="ILogger.ForType&lt;T&gt; method" Url="html/M_Grpc_Core_Logging_ILogger_ForType__1.htm" />
+  <HelpKINode Title="ILogger.Info method" Url="html/M_Grpc_Core_Logging_ILogger_Info.htm" />
+  <HelpKINode Title="ILogger.Warning method" Url="html/Overload_Grpc_Core_Logging_ILogger_Warning.htm" />
+  <HelpKINode Title="IMethod interface">
+    <HelpKINode Title="IMethod Interface" Url="html/T_Grpc_Core_IMethod.htm" />
+    <HelpKINode Title="about IMethod interface" Url="html/T_Grpc_Core_IMethod.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IMethod.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IMethod.FullName property" Url="html/P_Grpc_Core_IMethod_FullName.htm" />
+  <HelpKINode Title="IMethod.Name property" Url="html/P_Grpc_Core_IMethod_Name.htm" />
+  <HelpKINode Title="IMethod.ServiceName property" Url="html/P_Grpc_Core_IMethod_ServiceName.htm" />
+  <HelpKINode Title="IMethod.Type property" Url="html/P_Grpc_Core_IMethod_Type.htm" />
+  <HelpKINode Title="IndexOf method" Url="html/M_Grpc_Core_Metadata_IndexOf.htm" />
+  <HelpKINode Title="Info method">
+    <HelpKINode Title="ConsoleLogger.Info Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm" />
+    <HelpKINode Title="ILogger.Info Method " Url="html/M_Grpc_Core_Logging_ILogger_Info.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Insecure property">
+    <HelpKINode Title="Credentials.Insecure Property " Url="html/P_Grpc_Core_Credentials_Insecure.htm" />
+    <HelpKINode Title="ServerCredentials.Insecure Property " Url="html/P_Grpc_Core_ServerCredentials_Insecure.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Insert method" Url="html/M_Grpc_Core_Metadata_Insert.htm" />
+  <HelpKINode Title="Integer enumeration member" Url="html/T_Grpc_Core_ChannelOption_OptionType.htm" />
+  <HelpKINode Title="Internal enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="IntValue property" Url="html/P_Grpc_Core_ChannelOption_IntValue.htm" />
+  <HelpKINode Title="InvalidArgument enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="IsBinary property" Url="html/P_Grpc_Core_Metadata_Entry_IsBinary.htm" />
+  <HelpKINode Title="IServerStreamWriter(Of T) interface">
+    <HelpKINode Title="IServerStreamWriter(T) Interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm" />
+    <HelpKINode Title="about IServerStreamWriter(Of T) interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IServerStreamWriter&lt;T&gt; interface">
+    <HelpKINode Title="IServerStreamWriter(T) Interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm" />
+    <HelpKINode Title="about IServerStreamWriter&lt;T&gt; interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="IsPropagateCancellation property" Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm" />
+  <HelpKINode Title="IsPropagateDeadline property" Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm" />
+  <HelpKINode Title="IsReadOnly property" Url="html/P_Grpc_Core_Metadata_IsReadOnly.htm" />
+  <HelpKINode Title="Item property" Url="html/P_Grpc_Core_Metadata_Item.htm" />
+  <HelpKINode Title="Key property" Url="html/P_Grpc_Core_Metadata_Entry_Key.htm" />
+  <HelpKINode Title="KeyCertificatePair class">
+    <HelpKINode Title="KeyCertificatePair Class" Url="html/T_Grpc_Core_KeyCertificatePair.htm" />
+    <HelpKINode Title="about KeyCertificatePair class" Url="html/T_Grpc_Core_KeyCertificatePair.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_KeyCertificatePair__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_KeyCertificatePair.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_KeyCertificatePair.htm" />
+  </HelpKINode>
+  <HelpKINode Title="KeyCertificatePair property" Url="html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm" />
+  <HelpKINode Title="KeyCertificatePair.CertificateChain property" Url="html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm" />
+  <HelpKINode Title="KeyCertificatePair.KeyCertificatePair constructor" Url="html/M_Grpc_Core_KeyCertificatePair__ctor.htm" />
+  <HelpKINode Title="KeyCertificatePair.PrivateKey property" Url="html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm" />
+  <HelpKINode Title="KeyCertificatePairs property" Url="html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" />
+  <HelpKINode Title="KillAsync method" Url="html/M_Grpc_Core_Server_KillAsync.htm" />
+  <HelpKINode Title="Logger property" Url="html/P_Grpc_Core_GrpcEnvironment_Logger.htm" />
+  <HelpKINode Title="Low enumeration member" Url="html/T_Grpc_Core_CompressionLevel.htm" />
+  <HelpKINode Title="Marshaller(Of T) structure">
+    <HelpKINode Title="Marshaller(T) Structure" Url="html/T_Grpc_Core_Marshaller_1.htm" />
+    <HelpKINode Title="about Marshaller(Of T) structure" Url="html/T_Grpc_Core_Marshaller_1.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Marshaller_1__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Marshaller_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Marshaller_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Marshaller(Of T).Deserializer property" Url="html/P_Grpc_Core_Marshaller_1_Deserializer.htm" />
+  <HelpKINode Title="Marshaller(Of T).Marshaller constructor" Url="html/M_Grpc_Core_Marshaller_1__ctor.htm" />
+  <HelpKINode Title="Marshaller(Of T).Serializer property" Url="html/P_Grpc_Core_Marshaller_1_Serializer.htm" />
+  <HelpKINode Title="Marshaller&lt;T&gt; structure">
+    <HelpKINode Title="Marshaller(T) Structure" Url="html/T_Grpc_Core_Marshaller_1.htm" />
+    <HelpKINode Title="about Marshaller&lt;T&gt; structure" Url="html/T_Grpc_Core_Marshaller_1.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Marshaller_1__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Marshaller_1.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Marshaller_1.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Marshaller&lt;T&gt;.Deserializer property" Url="html/P_Grpc_Core_Marshaller_1_Deserializer.htm" />
+  <HelpKINode Title="Marshaller&lt;T&gt;.Marshaller constructor" Url="html/M_Grpc_Core_Marshaller_1__ctor.htm" />
+  <HelpKINode Title="Marshaller&lt;T&gt;.Serializer property" Url="html/P_Grpc_Core_Marshaller_1_Serializer.htm" />
+  <HelpKINode Title="Marshallers class">
+    <HelpKINode Title="Marshallers Class" Url="html/T_Grpc_Core_Marshallers.htm" />
+    <HelpKINode Title="about Marshallers class" Url="html/T_Grpc_Core_Marshallers.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Marshallers.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Marshallers.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Marshallers.Create(Of T) method" Url="html/M_Grpc_Core_Marshallers_Create__1.htm" />
+  <HelpKINode Title="Marshallers.Create&lt;T&gt; method" Url="html/M_Grpc_Core_Marshallers_Create__1.htm" />
+  <HelpKINode Title="Marshallers.StringMarshaller property" Url="html/P_Grpc_Core_Marshallers_StringMarshaller.htm" />
+  <HelpKINode Title="MaxConcurrentStreams field" Url="html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" />
+  <HelpKINode Title="MaxMessageLength field" Url="html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" />
+  <HelpKINode Title="Medium enumeration member" Url="html/T_Grpc_Core_CompressionLevel.htm" />
+  <HelpKINode Title="Metadata class">
+    <HelpKINode Title="Metadata Class" Url="html/T_Grpc_Core_Metadata.htm" />
+    <HelpKINode Title="about Metadata class" Url="html/T_Grpc_Core_Metadata.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Metadata__ctor.htm" />
+    <HelpKINode Title="fields" Url="html/Fields_T_Grpc_Core_Metadata.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Metadata.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Metadata.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Metadata.Add method" Url="html/Overload_Grpc_Core_Metadata_Add.htm" />
+  <HelpKINode Title="Metadata.BinaryHeaderSuffix field" Url="html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm" />
+  <HelpKINode Title="Metadata.Clear method" Url="html/M_Grpc_Core_Metadata_Clear.htm" />
+  <HelpKINode Title="Metadata.Contains method" Url="html/M_Grpc_Core_Metadata_Contains.htm" />
+  <HelpKINode Title="Metadata.CopyTo method" Url="html/M_Grpc_Core_Metadata_CopyTo.htm" />
+  <HelpKINode Title="Metadata.Count property" Url="html/P_Grpc_Core_Metadata_Count.htm" />
+  <HelpKINode Title="Metadata.Empty field" Url="html/F_Grpc_Core_Metadata_Empty.htm" />
+  <HelpKINode Title="Metadata.Entry structure">
+    <HelpKINode Title="Metadata.Entry Structure" Url="html/T_Grpc_Core_Metadata_Entry.htm" />
+    <HelpKINode Title="about Metadata.Entry structure" Url="html/T_Grpc_Core_Metadata_Entry.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_Metadata_Entry__ctor.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Metadata.Entry.Entry constructor" Url="html/Overload_Grpc_Core_Metadata_Entry__ctor.htm" />
+  <HelpKINode Title="Metadata.Entry.IsBinary property" Url="html/P_Grpc_Core_Metadata_Entry_IsBinary.htm" />
+  <HelpKINode Title="Metadata.Entry.Key property" Url="html/P_Grpc_Core_Metadata_Entry_Key.htm" />
+  <HelpKINode Title="Metadata.Entry.ToString method" Url="html/M_Grpc_Core_Metadata_Entry_ToString.htm" />
+  <HelpKINode Title="Metadata.Entry.Value property" Url="html/P_Grpc_Core_Metadata_Entry_Value.htm" />
+  <HelpKINode Title="Metadata.Entry.ValueBytes property" Url="html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm" />
+  <HelpKINode Title="Metadata.GetEnumerator method" Url="html/M_Grpc_Core_Metadata_GetEnumerator.htm" />
+  <HelpKINode Title="Metadata.IndexOf method" Url="html/M_Grpc_Core_Metadata_IndexOf.htm" />
+  <HelpKINode Title="Metadata.Insert method" Url="html/M_Grpc_Core_Metadata_Insert.htm" />
+  <HelpKINode Title="Metadata.IsReadOnly property" Url="html/P_Grpc_Core_Metadata_IsReadOnly.htm" />
+  <HelpKINode Title="Metadata.Item property" Url="html/P_Grpc_Core_Metadata_Item.htm" />
+  <HelpKINode Title="Metadata.Metadata constructor" Url="html/M_Grpc_Core_Metadata__ctor.htm" />
+  <HelpKINode Title="Metadata.Remove method" Url="html/M_Grpc_Core_Metadata_Remove.htm" />
+  <HelpKINode Title="Metadata.RemoveAt method" Url="html/M_Grpc_Core_Metadata_RemoveAt.htm" />
+  <HelpKINode Title="Method property">
+    <HelpKINode Title="CallInvocationDetails(TRequest, TResponse).Method Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Method.htm" />
+    <HelpKINode Title="ServerCallContext.Method Property " Url="html/P_Grpc_Core_ServerCallContext_Method.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Method(Of TRequest, TResponse) class">
+    <HelpKINode Title="Method(TRequest, TResponse) Class" Url="html/T_Grpc_Core_Method_2.htm" />
+    <HelpKINode Title="about Method(Of TRequest, TResponse) class" Url="html/T_Grpc_Core_Method_2.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Method_2__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Method_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Method_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Method(Of TRequest, TResponse).FullName property" Url="html/P_Grpc_Core_Method_2_FullName.htm" />
+  <HelpKINode Title="Method(Of TRequest, TResponse).Method constructor" Url="html/M_Grpc_Core_Method_2__ctor.htm" />
+  <HelpKINode Title="Method(Of TRequest, TResponse).Name property" Url="html/P_Grpc_Core_Method_2_Name.htm" />
+  <HelpKINode Title="Method(Of TRequest, TResponse).RequestMarshaller property" Url="html/P_Grpc_Core_Method_2_RequestMarshaller.htm" />
+  <HelpKINode Title="Method(Of TRequest, TResponse).ResponseMarshaller property" Url="html/P_Grpc_Core_Method_2_ResponseMarshaller.htm" />
+  <HelpKINode Title="Method(Of TRequest, TResponse).ServiceName property" Url="html/P_Grpc_Core_Method_2_ServiceName.htm" />
+  <HelpKINode Title="Method(Of TRequest, TResponse).Type property" Url="html/P_Grpc_Core_Method_2_Type.htm" />
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt; class">
+    <HelpKINode Title="Method(TRequest, TResponse) Class" Url="html/T_Grpc_Core_Method_2.htm" />
+    <HelpKINode Title="about Method&lt;TRequest, TResponse&gt; class" Url="html/T_Grpc_Core_Method_2.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Method_2__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Method_2.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Method_2.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt;.FullName property" Url="html/P_Grpc_Core_Method_2_FullName.htm" />
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt;.Method constructor" Url="html/M_Grpc_Core_Method_2__ctor.htm" />
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt;.Name property" Url="html/P_Grpc_Core_Method_2_Name.htm" />
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt;.RequestMarshaller property" Url="html/P_Grpc_Core_Method_2_RequestMarshaller.htm" />
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt;.ResponseMarshaller property" Url="html/P_Grpc_Core_Method_2_ResponseMarshaller.htm" />
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt;.ServiceName property" Url="html/P_Grpc_Core_Method_2_ServiceName.htm" />
+  <HelpKINode Title="Method&lt;TRequest, TResponse&gt;.Type property" Url="html/P_Grpc_Core_Method_2_Type.htm" />
+  <HelpKINode Title="MethodType enumeration" Url="html/T_Grpc_Core_MethodType.htm" />
+  <HelpKINode Title="Name property">
+    <HelpKINode Title="ChannelOption.Name Property " Url="html/P_Grpc_Core_ChannelOption_Name.htm" />
+    <HelpKINode Title="IMethod.Name Property " Url="html/P_Grpc_Core_IMethod_Name.htm" />
+    <HelpKINode Title="Method(TRequest, TResponse).Name Property " Url="html/P_Grpc_Core_Method_2_Name.htm" />
+  </HelpKINode>
+  <HelpKINode Title="NoCompress enumeration member" Url="html/T_Grpc_Core_WriteFlags.htm" />
+  <HelpKINode Title="None enumeration member" Url="html/T_Grpc_Core_CompressionLevel.htm" />
+  <HelpKINode Title="NotFound enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="OK enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Options property" Url="html/P_Grpc_Core_CallInvocationDetails_2_Options.htm" />
+  <HelpKINode Title="OutOfRange enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Peer property" Url="html/P_Grpc_Core_ServerCallContext_Peer.htm" />
+  <HelpKINode Title="PermissionDenied enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="PickUnused field" Url="html/F_Grpc_Core_ServerPort_PickUnused.htm" />
+  <HelpKINode Title="Port property" Url="html/P_Grpc_Core_ServerPort_Port.htm" />
+  <HelpKINode Title="Ports property" Url="html/P_Grpc_Core_Server_Ports.htm" />
+  <HelpKINode Title="Preconditions class">
+    <HelpKINode Title="Preconditions Class" Url="html/T_Grpc_Core_Utils_Preconditions.htm" />
+    <HelpKINode Title="about Preconditions class" Url="html/T_Grpc_Core_Utils_Preconditions.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Utils_Preconditions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Preconditions.CheckArgument method" Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm" />
+  <HelpKINode Title="Preconditions.CheckNotNull method" Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm" />
+  <HelpKINode Title="Preconditions.CheckState method" Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm" />
+  <HelpKINode Title="PrimaryUserAgentString field" Url="html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" />
+  <HelpKINode Title="PrivateKey property" Url="html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm" />
+  <HelpKINode Title="PropagationToken property" Url="html/P_Grpc_Core_CallOptions_PropagationToken.htm" />
+  <HelpKINode Title="Ready enumeration member" Url="html/T_Grpc_Core_ChannelState.htm" />
+  <HelpKINode Title="Remove method" Url="html/M_Grpc_Core_Metadata_Remove.htm" />
+  <HelpKINode Title="RemoveAt method" Url="html/M_Grpc_Core_Metadata_RemoveAt.htm" />
+  <HelpKINode Title="RequestHeaders property" Url="html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm" />
+  <HelpKINode Title="RequestMarshaller property">
+    <HelpKINode Title="CallInvocationDetails(TRequest, TResponse).RequestMarshaller Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" />
+    <HelpKINode Title="Method(TRequest, TResponse).RequestMarshaller Property " Url="html/P_Grpc_Core_Method_2_RequestMarshaller.htm" />
+  </HelpKINode>
+  <HelpKINode Title="RequestStream property">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse).RequestStream Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" />
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse).RequestStream Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ResolvedTarget property" Url="html/P_Grpc_Core_Channel_ResolvedTarget.htm" />
+  <HelpKINode Title="ResourceExhausted enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="ResponseAsync property">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse).ResponseAsync Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" />
+    <HelpKINode Title="AsyncUnaryCall(TResponse).ResponseAsync Property " Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ResponseHeadersAsync property">
+    <HelpKINode Title="AsyncClientStreamingCall(TRequest, TResponse).ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" />
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse).ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" />
+    <HelpKINode Title="AsyncServerStreamingCall(TResponse).ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" />
+    <HelpKINode Title="AsyncUnaryCall(TResponse).ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ResponseMarshaller property">
+    <HelpKINode Title="CallInvocationDetails(TRequest, TResponse).ResponseMarshaller Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" />
+    <HelpKINode Title="Method(TRequest, TResponse).ResponseMarshaller Property " Url="html/P_Grpc_Core_Method_2_ResponseMarshaller.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ResponseStream property">
+    <HelpKINode Title="AsyncDuplexStreamingCall(TRequest, TResponse).ResponseStream Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" />
+    <HelpKINode Title="AsyncServerStreamingCall(TResponse).ResponseStream Property " Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ResponseTrailers property" Url="html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" />
+  <HelpKINode Title="RootCertificates property">
+    <HelpKINode Title="SslCredentials.RootCertificates Property " Url="html/P_Grpc_Core_SslCredentials_RootCertificates.htm" />
+    <HelpKINode Title="SslServerCredentials.RootCertificates Property " Url="html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm" />
+  </HelpKINode>
+  <HelpKINode Title="RpcException class">
+    <HelpKINode Title="RpcException Class" Url="html/T_Grpc_Core_RpcException.htm" />
+    <HelpKINode Title="about RpcException class" Url="html/T_Grpc_Core_RpcException.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_RpcException__ctor.htm" />
+    <HelpKINode Title="events" Url="html/Events_T_Grpc_Core_RpcException.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_RpcException.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_RpcException.htm" />
+  </HelpKINode>
+  <HelpKINode Title="RpcException.RpcException constructor" Url="html/Overload_Grpc_Core_RpcException__ctor.htm" />
+  <HelpKINode Title="RpcException.Status property" Url="html/P_Grpc_Core_RpcException_Status.htm" />
+  <HelpKINode Title="RunBenchmark method" Url="html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm" />
+  <HelpKINode Title="SecondaryUserAgentString field" Url="html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" />
+  <HelpKINode Title="Serializer property" Url="html/P_Grpc_Core_Marshaller_1_Serializer.htm" />
+  <HelpKINode Title="Server class">
+    <HelpKINode Title="Server Class" Url="html/T_Grpc_Core_Server.htm" />
+    <HelpKINode Title="about Server class" Url="html/T_Grpc_Core_Server.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Server__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Server.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Server.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Server.KillAsync method" Url="html/M_Grpc_Core_Server_KillAsync.htm" />
+  <HelpKINode Title="Server.Ports property" Url="html/P_Grpc_Core_Server_Ports.htm" />
+  <HelpKINode Title="Server.Server constructor" Url="html/M_Grpc_Core_Server__ctor.htm" />
+  <HelpKINode Title="Server.ServerPortCollection class">
+    <HelpKINode Title="Server.ServerPortCollection Class" Url="html/T_Grpc_Core_Server_ServerPortCollection.htm" />
+    <HelpKINode Title="about Server.ServerPortCollection class" Url="html/T_Grpc_Core_Server_ServerPortCollection.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Server.ServerPortCollection.Add method" Url="html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" />
+  <HelpKINode Title="Server.ServerPortCollection.GetEnumerator method" Url="html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm" />
+  <HelpKINode Title="Server.ServiceDefinitionCollection class">
+    <HelpKINode Title="Server.ServiceDefinitionCollection Class" Url="html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm" />
+    <HelpKINode Title="about Server.ServiceDefinitionCollection class" Url="html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Server.ServiceDefinitionCollection.Add method" Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm" />
+  <HelpKINode Title="Server.ServiceDefinitionCollection.GetEnumerator method" Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm" />
+  <HelpKINode Title="Server.Services property" Url="html/P_Grpc_Core_Server_Services.htm" />
+  <HelpKINode Title="Server.ShutdownAsync method" Url="html/M_Grpc_Core_Server_ShutdownAsync.htm" />
+  <HelpKINode Title="Server.ShutdownTask property" Url="html/P_Grpc_Core_Server_ShutdownTask.htm" />
+  <HelpKINode Title="Server.Start method" Url="html/M_Grpc_Core_Server_Start.htm" />
+  <HelpKINode Title="ServerCallContext class">
+    <HelpKINode Title="ServerCallContext Class" Url="html/T_Grpc_Core_ServerCallContext.htm" />
+    <HelpKINode Title="about ServerCallContext class" Url="html/T_Grpc_Core_ServerCallContext.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ServerCallContext.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_ServerCallContext.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ServerCallContext.CancellationToken property" Url="html/P_Grpc_Core_ServerCallContext_CancellationToken.htm" />
+  <HelpKINode Title="ServerCallContext.CreatePropagationToken method" Url="html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm" />
+  <HelpKINode Title="ServerCallContext.Deadline property" Url="html/P_Grpc_Core_ServerCallContext_Deadline.htm" />
+  <HelpKINode Title="ServerCallContext.Host property" Url="html/P_Grpc_Core_ServerCallContext_Host.htm" />
+  <HelpKINode Title="ServerCallContext.Method property" Url="html/P_Grpc_Core_ServerCallContext_Method.htm" />
+  <HelpKINode Title="ServerCallContext.Peer property" Url="html/P_Grpc_Core_ServerCallContext_Peer.htm" />
+  <HelpKINode Title="ServerCallContext.RequestHeaders property" Url="html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm" />
+  <HelpKINode Title="ServerCallContext.ResponseTrailers property" Url="html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" />
+  <HelpKINode Title="ServerCallContext.Status property" Url="html/P_Grpc_Core_ServerCallContext_Status.htm" />
+  <HelpKINode Title="ServerCallContext.WriteOptions property" Url="html/P_Grpc_Core_ServerCallContext_WriteOptions.htm" />
+  <HelpKINode Title="ServerCallContext.WriteResponseHeadersAsync method" Url="html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm" />
+  <HelpKINode Title="ServerCredentials class">
+    <HelpKINode Title="ServerCredentials Class" Url="html/T_Grpc_Core_ServerCredentials.htm" />
+    <HelpKINode Title="about ServerCredentials class" Url="html/T_Grpc_Core_ServerCredentials.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_ServerCredentials__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ServerCredentials.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_ServerCredentials.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ServerCredentials.Insecure property" Url="html/P_Grpc_Core_ServerCredentials_Insecure.htm" />
+  <HelpKINode Title="ServerCredentials.ServerCredentials constructor" Url="html/M_Grpc_Core_ServerCredentials__ctor.htm" />
+  <HelpKINode Title="ServerPort class">
+    <HelpKINode Title="ServerPort Class" Url="html/T_Grpc_Core_ServerPort.htm" />
+    <HelpKINode Title="about ServerPort class" Url="html/T_Grpc_Core_ServerPort.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_ServerPort__ctor.htm" />
+    <HelpKINode Title="fields" Url="html/Fields_T_Grpc_Core_ServerPort.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ServerPort.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_ServerPort.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ServerPort.BoundPort property" Url="html/P_Grpc_Core_ServerPort_BoundPort.htm" />
+  <HelpKINode Title="ServerPort.Credentials property" Url="html/P_Grpc_Core_ServerPort_Credentials.htm" />
+  <HelpKINode Title="ServerPort.Host property" Url="html/P_Grpc_Core_ServerPort_Host.htm" />
+  <HelpKINode Title="ServerPort.PickUnused field" Url="html/F_Grpc_Core_ServerPort_PickUnused.htm" />
+  <HelpKINode Title="ServerPort.Port property" Url="html/P_Grpc_Core_ServerPort_Port.htm" />
+  <HelpKINode Title="ServerPort.ServerPort constructor" Url="html/M_Grpc_Core_ServerPort__ctor.htm" />
+  <HelpKINode Title="ServerPortCollection class">
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ServerServiceDefinition class">
+    <HelpKINode Title="ServerServiceDefinition Class" Url="html/T_Grpc_Core_ServerServiceDefinition.htm" />
+    <HelpKINode Title="about ServerServiceDefinition class" Url="html/T_Grpc_Core_ServerServiceDefinition.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ServerServiceDefinition.Builder class">
+    <HelpKINode Title="ServerServiceDefinition.Builder Class" Url="html/T_Grpc_Core_ServerServiceDefinition_Builder.htm" />
+    <HelpKINode Title="about ServerServiceDefinition.Builder class" Url="html/T_Grpc_Core_ServerServiceDefinition_Builder.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ServerServiceDefinition.Builder.AddMethod method" Url="html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" />
+  <HelpKINode Title="ServerServiceDefinition.Builder.Build method" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm" />
+  <HelpKINode Title="ServerServiceDefinition.Builder.Builder constructor" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm" />
+  <HelpKINode Title="ServerServiceDefinition.CreateBuilder method" Url="html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm" />
+  <HelpKINode Title="ServerStreaming enumeration member" Url="html/T_Grpc_Core_MethodType.htm" />
+  <HelpKINode Title="ServerStreamingServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_ServerStreamingServerMethod_2.htm" />
+  <HelpKINode Title="ServerStreamingServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_ServerStreamingServerMethod_2.htm" />
+  <HelpKINode Title="ServiceDefinitionCollection class">
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ServiceName property">
+    <HelpKINode Title="IMethod.ServiceName Property " Url="html/P_Grpc_Core_IMethod_ServiceName.htm" />
+    <HelpKINode Title="Method(TRequest, TResponse).ServiceName Property " Url="html/P_Grpc_Core_Method_2_ServiceName.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Services property" Url="html/P_Grpc_Core_Server_Services.htm" />
+  <HelpKINode Title="SetLogger method" Url="html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm" />
+  <HelpKINode Title="ShutdownAsync method">
+    <HelpKINode Title="Channel.ShutdownAsync Method " Url="html/M_Grpc_Core_Channel_ShutdownAsync.htm" />
+    <HelpKINode Title="Server.ShutdownAsync Method " Url="html/M_Grpc_Core_Server_ShutdownAsync.htm" />
+  </HelpKINode>
+  <HelpKINode Title="ShutdownTask property" Url="html/P_Grpc_Core_Server_ShutdownTask.htm" />
+  <HelpKINode Title="SslCredentials class">
+    <HelpKINode Title="SslCredentials Class" Url="html/T_Grpc_Core_SslCredentials.htm" />
+    <HelpKINode Title="about SslCredentials class" Url="html/T_Grpc_Core_SslCredentials.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_SslCredentials__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_SslCredentials.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_SslCredentials.htm" />
+  </HelpKINode>
+  <HelpKINode Title="SslCredentials.KeyCertificatePair property" Url="html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm" />
+  <HelpKINode Title="SslCredentials.RootCertificates property" Url="html/P_Grpc_Core_SslCredentials_RootCertificates.htm" />
+  <HelpKINode Title="SslCredentials.SslCredentials constructor" Url="html/Overload_Grpc_Core_SslCredentials__ctor.htm" />
+  <HelpKINode Title="SslServerCredentials class">
+    <HelpKINode Title="SslServerCredentials Class" Url="html/T_Grpc_Core_SslServerCredentials.htm" />
+    <HelpKINode Title="about SslServerCredentials class" Url="html/T_Grpc_Core_SslServerCredentials.htm" />
+    <HelpKINode Title="constructor" Url="html/Overload_Grpc_Core_SslServerCredentials__ctor.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_SslServerCredentials.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_SslServerCredentials.htm" />
+  </HelpKINode>
+  <HelpKINode Title="SslServerCredentials.ForceClientAuthentication property" Url="html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" />
+  <HelpKINode Title="SslServerCredentials.KeyCertificatePairs property" Url="html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" />
+  <HelpKINode Title="SslServerCredentials.RootCertificates property" Url="html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm" />
+  <HelpKINode Title="SslServerCredentials.SslServerCredentials constructor" Url="html/Overload_Grpc_Core_SslServerCredentials__ctor.htm" />
+  <HelpKINode Title="SslTargetNameOverride field" Url="html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" />
+  <HelpKINode Title="Start method" Url="html/M_Grpc_Core_Server_Start.htm" />
+  <HelpKINode Title="State property" Url="html/P_Grpc_Core_Channel_State.htm" />
+  <HelpKINode Title="Status property">
+    <HelpKINode Title="RpcException.Status Property " Url="html/P_Grpc_Core_RpcException_Status.htm" />
+    <HelpKINode Title="ServerCallContext.Status Property " Url="html/P_Grpc_Core_ServerCallContext_Status.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Status structure">
+    <HelpKINode Title="Status Structure" Url="html/T_Grpc_Core_Status.htm" />
+    <HelpKINode Title="about Status structure" Url="html/T_Grpc_Core_Status.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_Status__ctor.htm" />
+    <HelpKINode Title="fields" Url="html/Fields_T_Grpc_Core_Status.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_Status.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_Status.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Status.DefaultCancelled field" Url="html/F_Grpc_Core_Status_DefaultCancelled.htm" />
+  <HelpKINode Title="Status.DefaultSuccess field" Url="html/F_Grpc_Core_Status_DefaultSuccess.htm" />
+  <HelpKINode Title="Status.Detail property" Url="html/P_Grpc_Core_Status_Detail.htm" />
+  <HelpKINode Title="Status.Status constructor" Url="html/M_Grpc_Core_Status__ctor.htm" />
+  <HelpKINode Title="Status.StatusCode property" Url="html/P_Grpc_Core_Status_StatusCode.htm" />
+  <HelpKINode Title="Status.ToString method" Url="html/M_Grpc_Core_Status_ToString.htm" />
+  <HelpKINode Title="StatusCode enumeration" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="StatusCode property" Url="html/P_Grpc_Core_Status_StatusCode.htm" />
+  <HelpKINode Title="String enumeration member" Url="html/T_Grpc_Core_ChannelOption_OptionType.htm" />
+  <HelpKINode Title="StringMarshaller property" Url="html/P_Grpc_Core_Marshallers_StringMarshaller.htm" />
+  <HelpKINode Title="StringValue property" Url="html/P_Grpc_Core_ChannelOption_StringValue.htm" />
+  <HelpKINode Title="Target property" Url="html/P_Grpc_Core_Channel_Target.htm" />
+  <HelpKINode Title="ToListAsync(Of T) method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" />
+  <HelpKINode Title="ToListAsync&lt;T&gt; method" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" />
+  <HelpKINode Title="ToString method">
+    <HelpKINode Title="Metadata.Entry.ToString Method " Url="html/M_Grpc_Core_Metadata_Entry_ToString.htm" />
+    <HelpKINode Title="Status.ToString Method " Url="html/M_Grpc_Core_Status_ToString.htm" />
+  </HelpKINode>
+  <HelpKINode Title="TransientFailure enumeration member" Url="html/T_Grpc_Core_ChannelState.htm" />
+  <HelpKINode Title="Type property">
+    <HelpKINode Title="ChannelOption.Type Property " Url="html/P_Grpc_Core_ChannelOption_Type.htm" />
+    <HelpKINode Title="IMethod.Type Property " Url="html/P_Grpc_Core_IMethod_Type.htm" />
+    <HelpKINode Title="Method(TRequest, TResponse).Type Property " Url="html/P_Grpc_Core_Method_2_Type.htm" />
+  </HelpKINode>
+  <HelpKINode Title="Unary enumeration member" Url="html/T_Grpc_Core_MethodType.htm" />
+  <HelpKINode Title="UnaryServerMethod(Of TRequest, TResponse) delegate" Url="html/T_Grpc_Core_UnaryServerMethod_2.htm" />
+  <HelpKINode Title="UnaryServerMethod&lt;TRequest, TResponse&gt; delegate" Url="html/T_Grpc_Core_UnaryServerMethod_2.htm" />
+  <HelpKINode Title="Unauthenticated enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Unavailable enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Unimplemented enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Unknown enumeration member" Url="html/T_Grpc_Core_StatusCode.htm" />
+  <HelpKINode Title="Value property" Url="html/P_Grpc_Core_Metadata_Entry_Value.htm" />
+  <HelpKINode Title="ValueBytes property" Url="html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm" />
+  <HelpKINode Title="VersionInfo class">
+    <HelpKINode Title="VersionInfo Class" Url="html/T_Grpc_Core_VersionInfo.htm" />
+    <HelpKINode Title="about VersionInfo class" Url="html/T_Grpc_Core_VersionInfo.htm" />
+    <HelpKINode Title="fields" Url="html/Fields_T_Grpc_Core_VersionInfo.htm" />
+  </HelpKINode>
+  <HelpKINode Title="VersionInfo.CurrentVersion field" Url="html/F_Grpc_Core_VersionInfo_CurrentVersion.htm" />
+  <HelpKINode Title="WaitForStateChangedAsync method" Url="html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" />
+  <HelpKINode Title="Warning method">
+    <HelpKINode Title="ConsoleLogger.Warning Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" />
+    <HelpKINode Title="ILogger.Warning Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Warning.htm" />
+  </HelpKINode>
+  <HelpKINode Title="WithCancellationToken method" Url="html/M_Grpc_Core_CallOptions_WithCancellationToken.htm" />
+  <HelpKINode Title="WithDeadline method" Url="html/M_Grpc_Core_CallOptions_WithDeadline.htm" />
+  <HelpKINode Title="WithHeaders method" Url="html/M_Grpc_Core_CallOptions_WithHeaders.htm" />
+  <HelpKINode Title="WithOptions method" Url="html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm" />
+  <HelpKINode Title="WriteAllAsync method" Url="html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" />
+  <HelpKINode Title="WriteAsync method" Url="html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm" />
+  <HelpKINode Title="WriteFlags enumeration" Url="html/T_Grpc_Core_WriteFlags.htm" />
+  <HelpKINode Title="WriteOptions class">
+    <HelpKINode Title="WriteOptions Class" Url="html/T_Grpc_Core_WriteOptions.htm" />
+    <HelpKINode Title="about WriteOptions class" Url="html/T_Grpc_Core_WriteOptions.htm" />
+    <HelpKINode Title="constructor" Url="html/M_Grpc_Core_WriteOptions__ctor.htm" />
+    <HelpKINode Title="fields" Url="html/Fields_T_Grpc_Core_WriteOptions.htm" />
+    <HelpKINode Title="methods" Url="html/Methods_T_Grpc_Core_WriteOptions.htm" />
+    <HelpKINode Title="properties" Url="html/Properties_T_Grpc_Core_WriteOptions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="WriteOptions property">
+    <HelpKINode Title="CallOptions.WriteOptions Property " Url="html/P_Grpc_Core_CallOptions_WriteOptions.htm" />
+    <HelpKINode Title="IAsyncStreamWriter(T).WriteOptions Property " Url="html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm" />
+    <HelpKINode Title="IHasWriteOptions.WriteOptions Property " Url="html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm" />
+    <HelpKINode Title="ServerCallContext.WriteOptions Property " Url="html/P_Grpc_Core_ServerCallContext_WriteOptions.htm" />
+  </HelpKINode>
+  <HelpKINode Title="WriteOptions.Default field" Url="html/F_Grpc_Core_WriteOptions_Default.htm" />
+  <HelpKINode Title="WriteOptions.Flags property" Url="html/P_Grpc_Core_WriteOptions_Flags.htm" />
+  <HelpKINode Title="WriteOptions.WriteOptions constructor" Url="html/M_Grpc_Core_WriteOptions__ctor.htm" />
+  <HelpKINode Title="WriteResponseHeadersAsync method" Url="html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm" />
+</HelpKI>
diff --git a/doc/ref/csharp/html/WebTOC.xml b/doc/ref/csharp/html/WebTOC.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63da550f44cf7e6771d2b88f14bf66bb66aa0094
--- /dev/null
+++ b/doc/ref/csharp/html/WebTOC.xml
@@ -0,0 +1,523 @@
+<?xml version="1.0" encoding="utf-8"?>
+<HelpTOC>
+
+  <HelpTOCNode Id="99ef1ac3-191d-4e4f-9bc8-74352a862ec4" Title="Namespaces" Url="html/R_Project_Documentation.htm">
+    <HelpTOCNode Id="4fb087a0-0c31-4543-8b29-7b9740334f73" Title="Grpc.Auth" Url="html/N_Grpc_Auth.htm">
+      <HelpTOCNode Id="1987ce1f-94cc-4bce-8e43-19759c74132b" Title="AuthInterceptors Class" Url="html/T_Grpc_Auth_AuthInterceptors.htm">
+        <HelpTOCNode Id="0703fe79-f006-463e-b258-6896e18413c8" Title="AuthInterceptors Methods" Url="html/Methods_T_Grpc_Auth_AuthInterceptors.htm">
+          <HelpTOCNode Title="FromAccessToken Method " Url="html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm" />
+          <HelpTOCNode Title="FromCredential Method " Url="html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+    </HelpTOCNode>
+    <HelpTOCNode Id="b7d00d8c-ddae-4df5-ae4a-9c6b14a57519" Title="Grpc.Core" Url="html/N_Grpc_Core.htm">
+      <HelpTOCNode Id="25ef63ae-1bf8-411e-9808-e60ff5c27062" Title="AsyncClientStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm">
+        <HelpTOCNode Id="3c82f904-a574-4811-9151-bd9bd00550d6" Title="AsyncClientStreamingCall(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm">
+          <HelpTOCNode Title="RequestStream Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" />
+          <HelpTOCNode Title="ResponseAsync Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" />
+          <HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="01928221-e085-4913-8a55-ab2003c07b52" Title="AsyncClientStreamingCall(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm">
+          <HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" />
+          <HelpTOCNode Title="GetAwaiter Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" />
+          <HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" />
+          <HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="64d758f3-3b89-4445-b9fe-864a1f4ecc09" Title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">
+        <HelpTOCNode Id="03ecf596-76d4-4e4b-8aa7-35c74f9c2a4d" Title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">
+          <HelpTOCNode Title="RequestStream Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" />
+          <HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" />
+          <HelpTOCNode Title="ResponseStream Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="918a83fd-570e-4e4e-a673-d2df2a41090a" Title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">
+          <HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" />
+          <HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" />
+          <HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="db112032-ef26-407a-8aef-4bd5e9e51b30" Title="AsyncServerStreamingCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm">
+        <HelpTOCNode Id="d3f8a1be-8ffe-44d1-9c21-361a77a59f26" Title="AsyncServerStreamingCall(TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm">
+          <HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" />
+          <HelpTOCNode Title="ResponseStream Property " Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="b5c92c91-96d0-4cb5-9ca2-7e2bde39e47c" Title="AsyncServerStreamingCall(TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm">
+          <HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" />
+          <HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" />
+          <HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="d2ddfcd9-ebc5-43f2-9054-1697572874d5" Title="AsyncUnaryCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm">
+        <HelpTOCNode Id="e6d76953-ca0c-4211-82e5-116c69e5b43e" Title="AsyncUnaryCall(TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm">
+          <HelpTOCNode Title="ResponseAsync Property " Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" />
+          <HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="36ce22b5-b6c2-4601-9037-adfe892ed976" Title="AsyncUnaryCall(TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm">
+          <HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" />
+          <HelpTOCNode Title="GetAwaiter Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" />
+          <HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" />
+          <HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="e272cc27-608b-46e6-abe7-9655e6d90df0" Title="CallInvocationDetails(TRequest, TResponse) Structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm">
+        <HelpTOCNode Id="c29d79be-04d1-448c-b6b8-cdd08ebe3d4a" Title="CallInvocationDetails(TRequest, TResponse) Constructor " Url="html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm">
+          <HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)" Url="html/M_Grpc_Core_CallInvocationDetails_2__ctor.htm" />
+          <HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)" Url="html/M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm" />
+          <HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)" Url="html/M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="473238e3-f673-4b5e-8f28-856e23613981" Title="CallInvocationDetails(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm">
+          <HelpTOCNode Title="Channel Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm" />
+          <HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Host.htm" />
+          <HelpTOCNode Title="Method Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Method.htm" />
+          <HelpTOCNode Title="Options Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Options.htm" />
+          <HelpTOCNode Title="RequestMarshaller Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" />
+          <HelpTOCNode Title="ResponseMarshaller Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="62c7468b-9b2b-4869-8de0-412744a4da91" Title="CallInvocationDetails(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm">
+          <HelpTOCNode Title="WithOptions Method " Url="html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="24946a6a-fd6f-4c40-85ec-50f0fc3f4ffb" Title="CallOptions Structure" Url="html/T_Grpc_Core_CallOptions.htm">
+        <HelpTOCNode Title="CallOptions Constructor " Url="html/M_Grpc_Core_CallOptions__ctor.htm" />
+        <HelpTOCNode Id="a687274d-aad6-48e2-8013-ecf468e6ef2d" Title="CallOptions Properties" Url="html/Properties_T_Grpc_Core_CallOptions.htm">
+          <HelpTOCNode Title="CancellationToken Property " Url="html/P_Grpc_Core_CallOptions_CancellationToken.htm" />
+          <HelpTOCNode Title="Deadline Property " Url="html/P_Grpc_Core_CallOptions_Deadline.htm" />
+          <HelpTOCNode Title="Headers Property " Url="html/P_Grpc_Core_CallOptions_Headers.htm" />
+          <HelpTOCNode Title="PropagationToken Property " Url="html/P_Grpc_Core_CallOptions_PropagationToken.htm" />
+          <HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_CallOptions_WriteOptions.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="d9305a3f-a129-407b-9456-492e3a2228a0" Title="CallOptions Methods" Url="html/Methods_T_Grpc_Core_CallOptions.htm">
+          <HelpTOCNode Title="WithCancellationToken Method " Url="html/M_Grpc_Core_CallOptions_WithCancellationToken.htm" />
+          <HelpTOCNode Title="WithDeadline Method " Url="html/M_Grpc_Core_CallOptions_WithDeadline.htm" />
+          <HelpTOCNode Title="WithHeaders Method " Url="html/M_Grpc_Core_CallOptions_WithHeaders.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="ab223075-d269-49b4-92d7-ce69d4ca4b4e" Title="Calls Class" Url="html/T_Grpc_Core_Calls.htm">
+        <HelpTOCNode Id="0706d54b-54c4-44d5-90cf-8ba232d1965a" Title="Calls Methods" Url="html/Methods_T_Grpc_Core_Calls.htm">
+          <HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" />
+          <HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" />
+          <HelpTOCNode Title="AsyncServerStreamingCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" />
+          <HelpTOCNode Title="AsyncUnaryCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" />
+          <HelpTOCNode Title="BlockingUnaryCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="d862ceb3-3a34-47c5-b3aa-2f5616e3cad4" Title="Channel Class" Url="html/T_Grpc_Core_Channel.htm">
+        <HelpTOCNode Id="18933ee0-95a7-4a12-acdb-05803845efc8" Title="Channel Constructor " Url="html/Overload_Grpc_Core_Channel__ctor.htm">
+          <HelpTOCNode Title="Channel Constructor (String, Credentials, IEnumerable(ChannelOption))" Url="html/M_Grpc_Core_Channel__ctor.htm" />
+          <HelpTOCNode Title="Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))" Url="html/M_Grpc_Core_Channel__ctor_1.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="e9257938-4557-4035-8c2d-9d7e8aedd598" Title="Channel Properties" Url="html/Properties_T_Grpc_Core_Channel.htm">
+          <HelpTOCNode Title="ResolvedTarget Property " Url="html/P_Grpc_Core_Channel_ResolvedTarget.htm" />
+          <HelpTOCNode Title="State Property " Url="html/P_Grpc_Core_Channel_State.htm" />
+          <HelpTOCNode Title="Target Property " Url="html/P_Grpc_Core_Channel_Target.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="897e0ff0-8820-47d2-860a-4ca3602f836c" Title="Channel Methods" Url="html/Methods_T_Grpc_Core_Channel.htm">
+          <HelpTOCNode Title="ConnectAsync Method " Url="html/M_Grpc_Core_Channel_ConnectAsync.htm" />
+          <HelpTOCNode Title="ShutdownAsync Method " Url="html/M_Grpc_Core_Channel_ShutdownAsync.htm" />
+          <HelpTOCNode Title="WaitForStateChangedAsync Method " Url="html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="f0103838-be43-46f6-a022-647b30d4a3df" Title="ChannelOption Class" Url="html/T_Grpc_Core_ChannelOption.htm">
+        <HelpTOCNode Id="419e7c87-a890-494e-a5e0-74e5820f5925" Title="ChannelOption Constructor " Url="html/Overload_Grpc_Core_ChannelOption__ctor.htm">
+          <HelpTOCNode Title="ChannelOption Constructor (String, Int32)" Url="html/M_Grpc_Core_ChannelOption__ctor.htm" />
+          <HelpTOCNode Title="ChannelOption Constructor (String, String)" Url="html/M_Grpc_Core_ChannelOption__ctor_1.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="00f94e4d-e531-4677-bb8d-54a71fe94bd5" Title="ChannelOption Properties" Url="html/Properties_T_Grpc_Core_ChannelOption.htm">
+          <HelpTOCNode Title="IntValue Property " Url="html/P_Grpc_Core_ChannelOption_IntValue.htm" />
+          <HelpTOCNode Title="Name Property " Url="html/P_Grpc_Core_ChannelOption_Name.htm" />
+          <HelpTOCNode Title="StringValue Property " Url="html/P_Grpc_Core_ChannelOption_StringValue.htm" />
+          <HelpTOCNode Title="Type Property " Url="html/P_Grpc_Core_ChannelOption_Type.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="ChannelOption Methods" Url="html/Methods_T_Grpc_Core_ChannelOption.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Title="ChannelOption.OptionType Enumeration" Url="html/T_Grpc_Core_ChannelOption_OptionType.htm" />
+      <HelpTOCNode Id="f20d85db-61c5-4b58-a949-f1f2cd9df295" Title="ChannelOptions Class" Url="html/T_Grpc_Core_ChannelOptions.htm">
+        <HelpTOCNode Id="0b243553-4a9e-41ff-baa3-9a7872003252" Title="ChannelOptions Fields" Url="html/Fields_T_Grpc_Core_ChannelOptions.htm">
+          <HelpTOCNode Title="Census Field" Url="html/F_Grpc_Core_ChannelOptions_Census.htm" />
+          <HelpTOCNode Title="DefaultAuthority Field" Url="html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" />
+          <HelpTOCNode Title="Http2InitialSequenceNumber Field" Url="html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" />
+          <HelpTOCNode Title="MaxConcurrentStreams Field" Url="html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" />
+          <HelpTOCNode Title="MaxMessageLength Field" Url="html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" />
+          <HelpTOCNode Title="PrimaryUserAgentString Field" Url="html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" />
+          <HelpTOCNode Title="SecondaryUserAgentString Field" Url="html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" />
+          <HelpTOCNode Title="SslTargetNameOverride Field" Url="html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Title="ChannelState Enumeration" Url="html/T_Grpc_Core_ChannelState.htm" />
+      <HelpTOCNode Id="1ad15b1e-abc8-4dda-860c-22a4462a9c41" Title="ClientBase Class" Url="html/T_Grpc_Core_ClientBase.htm">
+        <HelpTOCNode Title="ClientBase Constructor " Url="html/M_Grpc_Core_ClientBase__ctor.htm" />
+        <HelpTOCNode Id="c304c5ea-13cf-4a02-b3a2-3c2273cba628" Title="ClientBase Properties" Url="html/Properties_T_Grpc_Core_ClientBase.htm">
+          <HelpTOCNode Title="Channel Property " Url="html/P_Grpc_Core_ClientBase_Channel.htm" />
+          <HelpTOCNode Title="HeaderInterceptor Property " Url="html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm" />
+          <HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_ClientBase_Host.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="a640e9d6-9acc-4fa9-95b7-a4aac2862c65" Title="ClientBase Methods" Url="html/Methods_T_Grpc_Core_ClientBase.htm">
+          <HelpTOCNode Title="CreateCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_ClientBase_CreateCall__2.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_ClientStreamingServerMethod_2.htm" />
+      <HelpTOCNode Title="CompressionLevel Enumeration" Url="html/T_Grpc_Core_CompressionLevel.htm" />
+      <HelpTOCNode Id="dbd91489-e56f-4cd2-8039-a10c0da5ff4c" Title="ContextPropagationOptions Class" Url="html/T_Grpc_Core_ContextPropagationOptions.htm">
+        <HelpTOCNode Title="ContextPropagationOptions Constructor " Url="html/M_Grpc_Core_ContextPropagationOptions__ctor.htm" />
+        <HelpTOCNode Id="69b7c88c-670e-435c-a274-7aca7e48090f" Title="ContextPropagationOptions Properties" Url="html/Properties_T_Grpc_Core_ContextPropagationOptions.htm">
+          <HelpTOCNode Title="IsPropagateCancellation Property " Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm" />
+          <HelpTOCNode Title="IsPropagateDeadline Property " Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="ContextPropagationOptions Methods" Url="html/Methods_T_Grpc_Core_ContextPropagationOptions.htm" />
+        <HelpTOCNode Id="0b020f8b-4de1-4f03-834b-00e7c8dc8352" Title="ContextPropagationOptions Fields" Url="html/Fields_T_Grpc_Core_ContextPropagationOptions.htm">
+          <HelpTOCNode Title="Default Field" Url="html/F_Grpc_Core_ContextPropagationOptions_Default.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="d40552a2-3013-4004-bade-17e9d4760b86" Title="ContextPropagationToken Class" Url="html/T_Grpc_Core_ContextPropagationToken.htm">
+        <HelpTOCNode Title="ContextPropagationToken Methods" Url="html/Methods_T_Grpc_Core_ContextPropagationToken.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="e5d569d9-b865-4283-8085-20b02c8fe61c" Title="Credentials Class" Url="html/T_Grpc_Core_Credentials.htm">
+        <HelpTOCNode Title="Credentials Constructor " Url="html/M_Grpc_Core_Credentials__ctor.htm" />
+        <HelpTOCNode Id="254817e8-86c9-4ee7-ad0f-7b5e4545e975" Title="Credentials Properties" Url="html/Properties_T_Grpc_Core_Credentials.htm">
+          <HelpTOCNode Title="Insecure Property " Url="html/P_Grpc_Core_Credentials_Insecure.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="Credentials Methods" Url="html/Methods_T_Grpc_Core_Credentials.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm" />
+      <HelpTOCNode Id="4d583c99-71d3-4807-8c5b-70b084b23f04" Title="GrpcEnvironment Class" Url="html/T_Grpc_Core_GrpcEnvironment.htm">
+        <HelpTOCNode Id="629e105c-2323-458d-826e-7e1ca31a6ca2" Title="GrpcEnvironment Properties" Url="html/Properties_T_Grpc_Core_GrpcEnvironment.htm">
+          <HelpTOCNode Title="Logger Property " Url="html/P_Grpc_Core_GrpcEnvironment_Logger.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="a9a95b9f-e072-48ae-9a7a-d88fead5e886" Title="GrpcEnvironment Methods" Url="html/Methods_T_Grpc_Core_GrpcEnvironment.htm">
+          <HelpTOCNode Title="SetLogger Method " Url="html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Title="HeaderInterceptor Delegate" Url="html/T_Grpc_Core_HeaderInterceptor.htm" />
+      <HelpTOCNode Id="18206bb0-344f-430d-83b0-c82a855bfc4b" Title="IAsyncStreamReader(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm">
+        <HelpTOCNode Title="IAsyncStreamReader(T) Properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm" />
+        <HelpTOCNode Title="IAsyncStreamReader(T) Methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="63fc9314-b1a0-406c-8474-5f3b7e692d38" Title="IAsyncStreamWriter(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm">
+        <HelpTOCNode Id="e6af8f5c-023a-456a-8686-3f9bdf051dec" Title="IAsyncStreamWriter(T) Properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm">
+          <HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="f26cd3eb-e88d-45cd-8a92-2b25fd90fde9" Title="IAsyncStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm">
+          <HelpTOCNode Title="WriteAsync Method " Url="html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="e5d1afb7-12fa-4ff2-9b22-cb459e04879c" Title="IClientStreamWriter(T) Interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm">
+        <HelpTOCNode Title="IClientStreamWriter(T) Properties" Url="html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm" />
+        <HelpTOCNode Id="08735fdd-2533-4dd3-ac72-1868c2b17b66" Title="IClientStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm">
+          <HelpTOCNode Title="CompleteAsync Method " Url="html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="42c38dfb-6ad6-4c8e-a8d0-301c86a4cad3" Title="IHasWriteOptions Interface" Url="html/T_Grpc_Core_IHasWriteOptions.htm">
+        <HelpTOCNode Id="1f8fb9be-416e-4276-89d4-960d38df861e" Title="IHasWriteOptions Properties" Url="html/Properties_T_Grpc_Core_IHasWriteOptions.htm">
+          <HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="68a8090b-42dd-4c11-9dc9-d4cf0a0be858" Title="IMethod Interface" Url="html/T_Grpc_Core_IMethod.htm">
+        <HelpTOCNode Id="5d6514b6-f61c-48ba-a888-9c688660d323" Title="IMethod Properties" Url="html/Properties_T_Grpc_Core_IMethod.htm">
+          <HelpTOCNode Title="FullName Property " Url="html/P_Grpc_Core_IMethod_FullName.htm" />
+          <HelpTOCNode Title="Name Property " Url="html/P_Grpc_Core_IMethod_Name.htm" />
+          <HelpTOCNode Title="ServiceName Property " Url="html/P_Grpc_Core_IMethod_ServiceName.htm" />
+          <HelpTOCNode Title="Type Property " Url="html/P_Grpc_Core_IMethod_Type.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="e07e09e1-8b9c-4c33-a6d1-fb0e7988fba7" Title="IServerStreamWriter(T) Interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm">
+        <HelpTOCNode Title="IServerStreamWriter(T) Properties" Url="html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm" />
+        <HelpTOCNode Title="IServerStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="37cb53e6-d613-48d3-86ff-f948208ffaa9" Title="KeyCertificatePair Class" Url="html/T_Grpc_Core_KeyCertificatePair.htm">
+        <HelpTOCNode Title="KeyCertificatePair Constructor " Url="html/M_Grpc_Core_KeyCertificatePair__ctor.htm" />
+        <HelpTOCNode Id="51709b36-11b6-46ef-a59e-807eadf88071" Title="KeyCertificatePair Properties" Url="html/Properties_T_Grpc_Core_KeyCertificatePair.htm">
+          <HelpTOCNode Title="CertificateChain Property " Url="html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm" />
+          <HelpTOCNode Title="PrivateKey Property " Url="html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="KeyCertificatePair Methods" Url="html/Methods_T_Grpc_Core_KeyCertificatePair.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="f4008ea4-7966-4c4e-9ffd-05192b1b664d" Title="Marshaller(T) Structure" Url="html/T_Grpc_Core_Marshaller_1.htm">
+        <HelpTOCNode Title="Marshaller(T) Constructor " Url="html/M_Grpc_Core_Marshaller_1__ctor.htm" />
+        <HelpTOCNode Id="2eeb7e1f-3bb9-465a-aff6-6f1941dbad6d" Title="Marshaller(T) Properties" Url="html/Properties_T_Grpc_Core_Marshaller_1.htm">
+          <HelpTOCNode Title="Deserializer Property " Url="html/P_Grpc_Core_Marshaller_1_Deserializer.htm" />
+          <HelpTOCNode Title="Serializer Property " Url="html/P_Grpc_Core_Marshaller_1_Serializer.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="Marshaller(T) Methods" Url="html/Methods_T_Grpc_Core_Marshaller_1.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="c89b726d-3eed-4293-95f6-eae2890c18d2" Title="Marshallers Class" Url="html/T_Grpc_Core_Marshallers.htm">
+        <HelpTOCNode Id="9f6c3cdf-93f2-40e9-bedf-e8fac4307920" Title="Marshallers Properties" Url="html/Properties_T_Grpc_Core_Marshallers.htm">
+          <HelpTOCNode Title="StringMarshaller Property " Url="html/P_Grpc_Core_Marshallers_StringMarshaller.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="24d998e8-0231-430a-ad63-2f71d1f2d83a" Title="Marshallers Methods" Url="html/Methods_T_Grpc_Core_Marshallers.htm">
+          <HelpTOCNode Title="Create(T) Method " Url="html/M_Grpc_Core_Marshallers_Create__1.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="21a41266-1f68-47c3-baf5-4a2f7c282328" Title="Metadata Class" Url="html/T_Grpc_Core_Metadata.htm">
+        <HelpTOCNode Title="Metadata Constructor " Url="html/M_Grpc_Core_Metadata__ctor.htm" />
+        <HelpTOCNode Id="2415b35c-f7b2-41e1-b3ed-1f5f5c134864" Title="Metadata Properties" Url="html/Properties_T_Grpc_Core_Metadata.htm">
+          <HelpTOCNode Title="Count Property " Url="html/P_Grpc_Core_Metadata_Count.htm" />
+          <HelpTOCNode Title="IsReadOnly Property " Url="html/P_Grpc_Core_Metadata_IsReadOnly.htm" />
+          <HelpTOCNode Title="Item Property " Url="html/P_Grpc_Core_Metadata_Item.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="3357228b-5529-42b9-87a4-22ad19c9002c" Title="Metadata Methods" Url="html/Methods_T_Grpc_Core_Metadata.htm">
+          <HelpTOCNode Id="00a82ec2-19f4-476d-9222-17260e2233fe" Title="Add Method " Url="html/Overload_Grpc_Core_Metadata_Add.htm">
+            <HelpTOCNode Title="Add Method (Metadata.Entry)" Url="html/M_Grpc_Core_Metadata_Add.htm" />
+            <HelpTOCNode Title="Add Method (String, Byte[])" Url="html/M_Grpc_Core_Metadata_Add_1.htm" />
+            <HelpTOCNode Title="Add Method (String, String)" Url="html/M_Grpc_Core_Metadata_Add_2.htm" />
+          </HelpTOCNode>
+          <HelpTOCNode Title="Clear Method " Url="html/M_Grpc_Core_Metadata_Clear.htm" />
+          <HelpTOCNode Title="Contains Method " Url="html/M_Grpc_Core_Metadata_Contains.htm" />
+          <HelpTOCNode Title="CopyTo Method " Url="html/M_Grpc_Core_Metadata_CopyTo.htm" />
+          <HelpTOCNode Title="GetEnumerator Method " Url="html/M_Grpc_Core_Metadata_GetEnumerator.htm" />
+          <HelpTOCNode Title="IndexOf Method " Url="html/M_Grpc_Core_Metadata_IndexOf.htm" />
+          <HelpTOCNode Title="Insert Method " Url="html/M_Grpc_Core_Metadata_Insert.htm" />
+          <HelpTOCNode Title="Remove Method " Url="html/M_Grpc_Core_Metadata_Remove.htm" />
+          <HelpTOCNode Title="RemoveAt Method " Url="html/M_Grpc_Core_Metadata_RemoveAt.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="a07312cd-d18c-47f7-9ee3-860b003e328d" Title="Metadata Fields" Url="html/Fields_T_Grpc_Core_Metadata.htm">
+          <HelpTOCNode Title="BinaryHeaderSuffix Field" Url="html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm" />
+          <HelpTOCNode Title="Empty Field" Url="html/F_Grpc_Core_Metadata_Empty.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="3083edee-34c1-40dc-a1b9-f14274557eb2" Title="Metadata.Entry Structure" Url="html/T_Grpc_Core_Metadata_Entry.htm">
+        <HelpTOCNode Id="b610d7f5-a63e-4aad-a2f5-7eaf43d66800" Title="Entry Constructor " Url="html/Overload_Grpc_Core_Metadata_Entry__ctor.htm">
+          <HelpTOCNode Title="Metadata.Entry Constructor (String, Byte[])" Url="html/M_Grpc_Core_Metadata_Entry__ctor.htm" />
+          <HelpTOCNode Title="Metadata.Entry Constructor (String, String)" Url="html/M_Grpc_Core_Metadata_Entry__ctor_1.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="8e497e7c-3c8c-48ab-b6d4-c2d72597e88b" Title="Entry Properties" Url="html/Properties_T_Grpc_Core_Metadata_Entry.htm">
+          <HelpTOCNode Title="IsBinary Property " Url="html/P_Grpc_Core_Metadata_Entry_IsBinary.htm" />
+          <HelpTOCNode Title="Key Property " Url="html/P_Grpc_Core_Metadata_Entry_Key.htm" />
+          <HelpTOCNode Title="Value Property " Url="html/P_Grpc_Core_Metadata_Entry_Value.htm" />
+          <HelpTOCNode Title="ValueBytes Property " Url="html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="d0af8c70-509b-4855-81dc-d83bf51b18bf" Title="Entry Methods" Url="html/Methods_T_Grpc_Core_Metadata_Entry.htm">
+          <HelpTOCNode Title="ToString Method " Url="html/M_Grpc_Core_Metadata_Entry_ToString.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="bb42405f-111a-4fb4-a7c0-202e4be0e870" Title="Method(TRequest, TResponse) Class" Url="html/T_Grpc_Core_Method_2.htm">
+        <HelpTOCNode Title="Method(TRequest, TResponse) Constructor " Url="html/M_Grpc_Core_Method_2__ctor.htm" />
+        <HelpTOCNode Id="07799a75-fe79-4c7e-82b2-4d386580bd52" Title="Method(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_Method_2.htm">
+          <HelpTOCNode Title="FullName Property " Url="html/P_Grpc_Core_Method_2_FullName.htm" />
+          <HelpTOCNode Title="Name Property " Url="html/P_Grpc_Core_Method_2_Name.htm" />
+          <HelpTOCNode Title="RequestMarshaller Property " Url="html/P_Grpc_Core_Method_2_RequestMarshaller.htm" />
+          <HelpTOCNode Title="ResponseMarshaller Property " Url="html/P_Grpc_Core_Method_2_ResponseMarshaller.htm" />
+          <HelpTOCNode Title="ServiceName Property " Url="html/P_Grpc_Core_Method_2_ServiceName.htm" />
+          <HelpTOCNode Title="Type Property " Url="html/P_Grpc_Core_Method_2_Type.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="Method(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_Method_2.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Title="MethodType Enumeration" Url="html/T_Grpc_Core_MethodType.htm" />
+      <HelpTOCNode Id="996a6829-32fa-4328-8425-a7e36dc06547" Title="RpcException Class" Url="html/T_Grpc_Core_RpcException.htm">
+        <HelpTOCNode Id="ecd3031d-500b-455b-b9e6-e7460c1196d3" Title="RpcException Constructor " Url="html/Overload_Grpc_Core_RpcException__ctor.htm">
+          <HelpTOCNode Title="RpcException Constructor (Status)" Url="html/M_Grpc_Core_RpcException__ctor.htm" />
+          <HelpTOCNode Title="RpcException Constructor (Status, String)" Url="html/M_Grpc_Core_RpcException__ctor_1.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="49925b06-a5ef-4208-aa58-97d01d83ca5a" Title="RpcException Properties" Url="html/Properties_T_Grpc_Core_RpcException.htm">
+          <HelpTOCNode Title="Status Property " Url="html/P_Grpc_Core_RpcException_Status.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="RpcException Methods" Url="html/Methods_T_Grpc_Core_RpcException.htm" />
+        <HelpTOCNode Title="RpcException Events" Url="html/Events_T_Grpc_Core_RpcException.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="202eecd5-04b7-4a5b-bca1-0fc2c886e7e8" Title="Server Class" Url="html/T_Grpc_Core_Server.htm">
+        <HelpTOCNode Title="Server Constructor " Url="html/M_Grpc_Core_Server__ctor.htm" />
+        <HelpTOCNode Id="9597ee15-8833-44e3-9709-3011e02061a3" Title="Server Properties" Url="html/Properties_T_Grpc_Core_Server.htm">
+          <HelpTOCNode Title="Ports Property " Url="html/P_Grpc_Core_Server_Ports.htm" />
+          <HelpTOCNode Title="Services Property " Url="html/P_Grpc_Core_Server_Services.htm" />
+          <HelpTOCNode Title="ShutdownTask Property " Url="html/P_Grpc_Core_Server_ShutdownTask.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="055d4e37-55d1-4272-8ea7-c5c98c597a0b" Title="Server Methods" Url="html/Methods_T_Grpc_Core_Server.htm">
+          <HelpTOCNode Title="KillAsync Method " Url="html/M_Grpc_Core_Server_KillAsync.htm" />
+          <HelpTOCNode Title="ShutdownAsync Method " Url="html/M_Grpc_Core_Server_ShutdownAsync.htm" />
+          <HelpTOCNode Title="Start Method " Url="html/M_Grpc_Core_Server_Start.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="179c4759-49e6-4cde-ad6c-ecbd24f28825" Title="Server.ServerPortCollection Class" Url="html/T_Grpc_Core_Server_ServerPortCollection.htm">
+        <HelpTOCNode Id="5ceab319-6c73-4c06-9f5f-91f96caa185c" Title="ServerPortCollection Methods" Url="html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm">
+          <HelpTOCNode Id="fb5a924b-0557-480a-ac52-69eb05641c43" Title="Add Method " Url="html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm">
+            <HelpTOCNode Title="Add Method (ServerPort)" Url="html/M_Grpc_Core_Server_ServerPortCollection_Add.htm" />
+            <HelpTOCNode Title="Add Method (String, Int32, ServerCredentials)" Url="html/M_Grpc_Core_Server_ServerPortCollection_Add_1.htm" />
+          </HelpTOCNode>
+          <HelpTOCNode Title="GetEnumerator Method " Url="html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="6a73d058-4abc-434e-955a-5dbb5319982f" Title="Server.ServiceDefinitionCollection Class" Url="html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm">
+        <HelpTOCNode Id="86683dc1-34bc-4c25-b9c5-d66e88ca16d4" Title="ServiceDefinitionCollection Methods" Url="html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm">
+          <HelpTOCNode Title="Add Method " Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm" />
+          <HelpTOCNode Title="GetEnumerator Method " Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="1eeadbd8-d9fb-4b0d-a569-2e94a2daa1a6" Title="ServerCallContext Class" Url="html/T_Grpc_Core_ServerCallContext.htm">
+        <HelpTOCNode Id="ff06e313-73f4-4c5b-bcdf-f47c0d4226fd" Title="ServerCallContext Properties" Url="html/Properties_T_Grpc_Core_ServerCallContext.htm">
+          <HelpTOCNode Title="CancellationToken Property " Url="html/P_Grpc_Core_ServerCallContext_CancellationToken.htm" />
+          <HelpTOCNode Title="Deadline Property " Url="html/P_Grpc_Core_ServerCallContext_Deadline.htm" />
+          <HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_ServerCallContext_Host.htm" />
+          <HelpTOCNode Title="Method Property " Url="html/P_Grpc_Core_ServerCallContext_Method.htm" />
+          <HelpTOCNode Title="Peer Property " Url="html/P_Grpc_Core_ServerCallContext_Peer.htm" />
+          <HelpTOCNode Title="RequestHeaders Property " Url="html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm" />
+          <HelpTOCNode Title="ResponseTrailers Property " Url="html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" />
+          <HelpTOCNode Title="Status Property " Url="html/P_Grpc_Core_ServerCallContext_Status.htm" />
+          <HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_ServerCallContext_WriteOptions.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="69bad7dd-c1d2-4641-86bc-3207683a8f9e" Title="ServerCallContext Methods" Url="html/Methods_T_Grpc_Core_ServerCallContext.htm">
+          <HelpTOCNode Title="CreatePropagationToken Method " Url="html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm" />
+          <HelpTOCNode Title="WriteResponseHeadersAsync Method " Url="html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="3fcaac14-82dd-4676-8372-ce9b3a432adf" Title="ServerCredentials Class" Url="html/T_Grpc_Core_ServerCredentials.htm">
+        <HelpTOCNode Title="ServerCredentials Constructor " Url="html/M_Grpc_Core_ServerCredentials__ctor.htm" />
+        <HelpTOCNode Id="260ab535-2687-4ca4-92e1-04f880f5b866" Title="ServerCredentials Properties" Url="html/Properties_T_Grpc_Core_ServerCredentials.htm">
+          <HelpTOCNode Title="Insecure Property " Url="html/P_Grpc_Core_ServerCredentials_Insecure.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="ServerCredentials Methods" Url="html/Methods_T_Grpc_Core_ServerCredentials.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="431525c2-7485-4749-96b4-4b780307e33a" Title="ServerPort Class" Url="html/T_Grpc_Core_ServerPort.htm">
+        <HelpTOCNode Title="ServerPort Constructor " Url="html/M_Grpc_Core_ServerPort__ctor.htm" />
+        <HelpTOCNode Id="63488e69-090c-4dfb-a0ee-b78525f0d6b9" Title="ServerPort Properties" Url="html/Properties_T_Grpc_Core_ServerPort.htm">
+          <HelpTOCNode Title="BoundPort Property " Url="html/P_Grpc_Core_ServerPort_BoundPort.htm" />
+          <HelpTOCNode Title="Credentials Property " Url="html/P_Grpc_Core_ServerPort_Credentials.htm" />
+          <HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_ServerPort_Host.htm" />
+          <HelpTOCNode Title="Port Property " Url="html/P_Grpc_Core_ServerPort_Port.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="ServerPort Methods" Url="html/Methods_T_Grpc_Core_ServerPort.htm" />
+        <HelpTOCNode Id="57a93a50-77d0-4e95-b56a-f7dd5b7c36d7" Title="ServerPort Fields" Url="html/Fields_T_Grpc_Core_ServerPort.htm">
+          <HelpTOCNode Title="PickUnused Field" Url="html/F_Grpc_Core_ServerPort_PickUnused.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="f016d58e-e22a-4270-9804-17e820acbeee" Title="ServerServiceDefinition Class" Url="html/T_Grpc_Core_ServerServiceDefinition.htm">
+        <HelpTOCNode Id="770302a4-5ce7-4c0f-ba09-2917367fb33f" Title="ServerServiceDefinition Methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition.htm">
+          <HelpTOCNode Title="CreateBuilder Method " Url="html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="746c68c2-783d-41b6-a100-d16b10e6101e" Title="ServerServiceDefinition.Builder Class" Url="html/T_Grpc_Core_ServerServiceDefinition_Builder.htm">
+        <HelpTOCNode Title="ServerServiceDefinition.Builder Constructor " Url="html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm" />
+        <HelpTOCNode Id="31b26957-e71e-450c-b081-ddfb89858ae6" Title="Builder Methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm">
+          <HelpTOCNode Id="cdf7da25-dd67-4470-87b6-e6338d8af19c" Title="AddMethod Method " Url="html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm">
+            <HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm" />
+            <HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm" />
+            <HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm" />
+            <HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm" />
+          </HelpTOCNode>
+          <HelpTOCNode Title="Build Method " Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_ServerStreamingServerMethod_2.htm" />
+      <HelpTOCNode Id="9360e278-6622-41e9-973b-2dda4a3f4191" Title="SslCredentials Class" Url="html/T_Grpc_Core_SslCredentials.htm">
+        <HelpTOCNode Id="db94bec2-b656-41a5-9a1e-f6e8e30aba61" Title="SslCredentials Constructor " Url="html/Overload_Grpc_Core_SslCredentials__ctor.htm">
+          <HelpTOCNode Title="SslCredentials Constructor " Url="html/M_Grpc_Core_SslCredentials__ctor.htm" />
+          <HelpTOCNode Title="SslCredentials Constructor (String)" Url="html/M_Grpc_Core_SslCredentials__ctor_1.htm" />
+          <HelpTOCNode Title="SslCredentials Constructor (String, KeyCertificatePair)" Url="html/M_Grpc_Core_SslCredentials__ctor_2.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="8676f362-61a4-45ae-98a1-72dc543e45ff" Title="SslCredentials Properties" Url="html/Properties_T_Grpc_Core_SslCredentials.htm">
+          <HelpTOCNode Title="KeyCertificatePair Property " Url="html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm" />
+          <HelpTOCNode Title="RootCertificates Property " Url="html/P_Grpc_Core_SslCredentials_RootCertificates.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="SslCredentials Methods" Url="html/Methods_T_Grpc_Core_SslCredentials.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="c42c9874-4efa-4021-ab51-38fca112ee60" Title="SslServerCredentials Class" Url="html/T_Grpc_Core_SslServerCredentials.htm">
+        <HelpTOCNode Id="a21a5287-ba71-4eff-8fb9-ae8df70b4e61" Title="SslServerCredentials Constructor " Url="html/Overload_Grpc_Core_SslServerCredentials__ctor.htm">
+          <HelpTOCNode Title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))" Url="html/M_Grpc_Core_SslServerCredentials__ctor.htm" />
+          <HelpTOCNode Title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)" Url="html/M_Grpc_Core_SslServerCredentials__ctor_1.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="612006fc-3a12-48c3-aaf9-1e8f9427fda8" Title="SslServerCredentials Properties" Url="html/Properties_T_Grpc_Core_SslServerCredentials.htm">
+          <HelpTOCNode Title="ForceClientAuthentication Property " Url="html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" />
+          <HelpTOCNode Title="KeyCertificatePairs Property " Url="html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" />
+          <HelpTOCNode Title="RootCertificates Property " Url="html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="SslServerCredentials Methods" Url="html/Methods_T_Grpc_Core_SslServerCredentials.htm" />
+      </HelpTOCNode>
+      <HelpTOCNode Id="9c94fbdf-19a0-4fc6-9a3c-78ce85d6d998" Title="Status Structure" Url="html/T_Grpc_Core_Status.htm">
+        <HelpTOCNode Title="Status Constructor " Url="html/M_Grpc_Core_Status__ctor.htm" />
+        <HelpTOCNode Id="b3e3e1c9-aa35-462d-aedb-0223a78f3c38" Title="Status Properties" Url="html/Properties_T_Grpc_Core_Status.htm">
+          <HelpTOCNode Title="Detail Property " Url="html/P_Grpc_Core_Status_Detail.htm" />
+          <HelpTOCNode Title="StatusCode Property " Url="html/P_Grpc_Core_Status_StatusCode.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="8c29ff31-266b-41f7-9ac1-06d2c14f87b6" Title="Status Methods" Url="html/Methods_T_Grpc_Core_Status.htm">
+          <HelpTOCNode Title="ToString Method " Url="html/M_Grpc_Core_Status_ToString.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Id="31c222e3-a41d-442c-b990-9792abbaec79" Title="Status Fields" Url="html/Fields_T_Grpc_Core_Status.htm">
+          <HelpTOCNode Title="DefaultCancelled Field" Url="html/F_Grpc_Core_Status_DefaultCancelled.htm" />
+          <HelpTOCNode Title="DefaultSuccess Field" Url="html/F_Grpc_Core_Status_DefaultSuccess.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Title="StatusCode Enumeration" Url="html/T_Grpc_Core_StatusCode.htm" />
+      <HelpTOCNode Title="UnaryServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_UnaryServerMethod_2.htm" />
+      <HelpTOCNode Id="cbb63ce8-468c-4123-aae2-5114a6fedb48" Title="VersionInfo Class" Url="html/T_Grpc_Core_VersionInfo.htm">
+        <HelpTOCNode Id="1a7b3c5b-faed-4100-9519-f8009ce9047c" Title="VersionInfo Fields" Url="html/Fields_T_Grpc_Core_VersionInfo.htm">
+          <HelpTOCNode Title="CurrentVersion Field" Url="html/F_Grpc_Core_VersionInfo_CurrentVersion.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Title="WriteFlags Enumeration" Url="html/T_Grpc_Core_WriteFlags.htm" />
+      <HelpTOCNode Id="ed6a008f-6472-49d1-9d53-9dc4bafb3cbf" Title="WriteOptions Class" Url="html/T_Grpc_Core_WriteOptions.htm">
+        <HelpTOCNode Title="WriteOptions Constructor " Url="html/M_Grpc_Core_WriteOptions__ctor.htm" />
+        <HelpTOCNode Id="4e281091-67c5-43a9-be15-83ab0d2c0640" Title="WriteOptions Properties" Url="html/Properties_T_Grpc_Core_WriteOptions.htm">
+          <HelpTOCNode Title="Flags Property " Url="html/P_Grpc_Core_WriteOptions_Flags.htm" />
+        </HelpTOCNode>
+        <HelpTOCNode Title="WriteOptions Methods" Url="html/Methods_T_Grpc_Core_WriteOptions.htm" />
+        <HelpTOCNode Id="804b2351-b339-4fd2-9887-05f7471372db" Title="WriteOptions Fields" Url="html/Fields_T_Grpc_Core_WriteOptions.htm">
+          <HelpTOCNode Title="Default Field" Url="html/F_Grpc_Core_WriteOptions_Default.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+    </HelpTOCNode>
+    <HelpTOCNode Id="e20dd797-c523-4164-bada-14a079905483" Title="Grpc.Core.Logging" Url="html/N_Grpc_Core_Logging.htm">
+      <HelpTOCNode Id="d2413897-cd8c-4913-bf51-fd7f08781540" Title="ConsoleLogger Class" Url="html/T_Grpc_Core_Logging_ConsoleLogger.htm">
+        <HelpTOCNode Title="ConsoleLogger Constructor " Url="html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm" />
+        <HelpTOCNode Id="3d43197c-0f15-46df-b00a-741576b080d1" Title="ConsoleLogger Methods" Url="html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm">
+          <HelpTOCNode Title="Debug Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" />
+          <HelpTOCNode Id="78f9a0e7-0817-40ae-8fa6-73b1c2fb0d43" Title="Error Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm">
+            <HelpTOCNode Title="Error Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm" />
+            <HelpTOCNode Title="Error Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Error.htm" />
+          </HelpTOCNode>
+          <HelpTOCNode Title="ForType(T) Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" />
+          <HelpTOCNode Title="Info Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm" />
+          <HelpTOCNode Id="a501df56-0e95-4469-95fb-dc2a7a411789" Title="Warning Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm">
+            <HelpTOCNode Title="Warning Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm" />
+            <HelpTOCNode Title="Warning Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Warning.htm" />
+          </HelpTOCNode>
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="1a278148-d563-4e6e-8078-7403300baf11" Title="ILogger Interface" Url="html/T_Grpc_Core_Logging_ILogger.htm">
+        <HelpTOCNode Id="dbabf9d7-57ca-49ea-b64b-6bcb2d5673e1" Title="ILogger Methods" Url="html/Methods_T_Grpc_Core_Logging_ILogger.htm">
+          <HelpTOCNode Title="Debug Method " Url="html/M_Grpc_Core_Logging_ILogger_Debug.htm" />
+          <HelpTOCNode Id="c7415d61-5774-4b68-8031-e8dc427a0b53" Title="Error Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Error.htm">
+            <HelpTOCNode Title="Error Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Error_1.htm" />
+            <HelpTOCNode Title="Error Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Error.htm" />
+          </HelpTOCNode>
+          <HelpTOCNode Title="ForType(T) Method " Url="html/M_Grpc_Core_Logging_ILogger_ForType__1.htm" />
+          <HelpTOCNode Title="Info Method " Url="html/M_Grpc_Core_Logging_ILogger_Info.htm" />
+          <HelpTOCNode Id="a91057c3-122e-485f-a239-28bf44d29b64" Title="Warning Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Warning.htm">
+            <HelpTOCNode Title="Warning Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Warning_1.htm" />
+            <HelpTOCNode Title="Warning Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Warning.htm" />
+          </HelpTOCNode>
+        </HelpTOCNode>
+      </HelpTOCNode>
+    </HelpTOCNode>
+    <HelpTOCNode Id="f0dcb251-b955-480a-b500-65a4a8317630" Title="Grpc.Core.Utils" Url="html/N_Grpc_Core_Utils.htm">
+      <HelpTOCNode Id="befb20b1-8faf-4ffe-a273-986cdd5039d3" Title="AsyncStreamExtensions Class" Url="html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm">
+        <HelpTOCNode Id="e1514b3a-0bc6-4f66-8e7b-2e1b87770636" Title="AsyncStreamExtensions Methods" Url="html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm">
+          <HelpTOCNode Title="ForEachAsync(T) Method " Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" />
+          <HelpTOCNode Title="ToListAsync(T) Method " Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" />
+          <HelpTOCNode Id="bd2e67b9-87fa-44e9-a9df-b8beda377897" Title="WriteAllAsync Method " Url="html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm">
+            <HelpTOCNode Title="WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm" />
+            <HelpTOCNode Title="WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm" />
+          </HelpTOCNode>
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="8a71d51b-3f4c-4d05-a5c2-372210e58c58" Title="BenchmarkUtil Class" Url="html/T_Grpc_Core_Utils_BenchmarkUtil.htm">
+        <HelpTOCNode Id="0c4af2e1-c86f-47a4-b01c-f69e701f998b" Title="BenchmarkUtil Methods" Url="html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm">
+          <HelpTOCNode Title="RunBenchmark Method " Url="html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm" />
+        </HelpTOCNode>
+      </HelpTOCNode>
+      <HelpTOCNode Id="c19e0a3c-734c-43b4-8513-6e9883ffc724" Title="Preconditions Class" Url="html/T_Grpc_Core_Utils_Preconditions.htm">
+        <HelpTOCNode Id="28a6deae-d1b8-45da-8627-258fd43f02e5" Title="Preconditions Methods" Url="html/Methods_T_Grpc_Core_Utils_Preconditions.htm">
+          <HelpTOCNode Id="82b41eef-bc6a-4830-99d0-fb7bc0278bdf" Title="CheckArgument Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm">
+            <HelpTOCNode Title="CheckArgument Method (Boolean)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckArgument.htm" />
+            <HelpTOCNode Title="CheckArgument Method (Boolean, String)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm" />
+          </HelpTOCNode>
+          <HelpTOCNode Id="519f0480-dfb2-477e-bc76-678bd0c977f8" Title="CheckNotNull Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm">
+            <HelpTOCNode Title="CheckNotNull(T) Method (T)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm" />
+            <HelpTOCNode Title="CheckNotNull(T) Method (T, String)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm" />
+          </HelpTOCNode>
+          <HelpTOCNode Id="b124a5b0-114e-475a-b01d-ffd879af66e7" Title="CheckState Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm">
+            <HelpTOCNode Title="CheckState Method (Boolean)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckState.htm" />
+            <HelpTOCNode Title="CheckState Method (Boolean, String)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckState_1.htm" />
+          </HelpTOCNode>
+        </HelpTOCNode>
+      </HelpTOCNode>
+    </HelpTOCNode>
+  </HelpTOCNode>
+</HelpTOC>
diff --git a/doc/ref/csharp/html/fti/FTI_100.json b/doc/ref/csharp/html/fti/FTI_100.json
new file mode 100644
index 0000000000000000000000000000000000000000..e9e948d71cd249119cc58cab0568a5d029955c71
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_100.json
@@ -0,0 +1 @@
+{"default":[1,196609,262146,458754,589826,720897,1179654,1441793,1507329,1638406,1769473,1835009,1900545,1966081,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3276801,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4456449,5701633,6750209,12648449,14221314,14548993,14614529,14811137,17825794,18153473,19267586,21561345,21626881,21692417,21757953,22020098,22085633,22151169,22347779,22544387,22609921,22675457,22806529,23003137,23068673,23265281,23330817,23396353,23658497,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707074,25231363],"description":[131073,196609,262145,327681,393217,458753,524289,589825,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686978,2752513,2818050,2883586,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,12255233,12320774,12386306,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,21430273,21495809,21561346,21626882,21692418,21757954,21823491,21889027,21954561,22020099,22085635,22151169,22216705,22282241,22347779,22478849,22544388,22609921,22675459,22806530,22937603,23003138,23068675,23134209,23199745,23265283,23330819,23396354,23461889,23527426,23592963,23658500,23724035,23789569,23855108,23920644,23986179,24051714,24117251,24182788,24248321,24313858,24444929,24510465,24576003,24641539,24707076,24772609,24903681,24969217,25034753,25100289,25165825,25231364],"data":[131073,15269889,23920642,24772609],"defaultauthority":[196609,720901,22151169],"defaultcancelled":[458753,1441797,24707073],"details":[458754,1441793,1507329,6881281,12320769,21823489,24707074],"defaultsuccess":[458753,1507333,24707073],"dll":[655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18153473,18219009,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19267585,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22216705,22282241,22347777,22413313,22478849,22544385,22609921,22675457,22740993,22806529,22872065,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23789569,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24379393,24444929,24510465,24576001,24641537,24707073,24772609,24838145,24903681,24969217,25034753,25100289,25165825,25231361],"dispose":[1769473,1835009,1900545,1966081,2686977,4653063,4915207,5111815,5308423,21561345,21626881,21692417,21757953,22937601],"determines":[1769473,1835009,1900545,1966081,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3276801,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4456449,21561345,21626881,21692417,21757953,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23658497,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,25231361],"directly":[1769473,1966081,4718593,5373953,21561345,21757953],"deadline":[2097153,2228226,5898247,6029321,6553610,6684681,7012353,12320769,14024706,14286849,15400962,16973830,17956865,19857414,21889027,22020098,22544385,22609921,24051714,24772610],"duplex":[2162690,6160386,21954562],"different":[2228225,6684673,22020097],"defined":[2686979,2818049,2883585,15269889,22937603,23068673,23265281,23920641],"debug":[3014658,3080194,7405578,7929864,23396354,23461890],"deserializer":[3145729,8388615,8454149,15007746,18743302,23527425,23592962],"derived":[3473410,23920642],"definitions":[3866628,9961473,10027009,10092545,10158081,12320769,13172740,24313860,24510465],"duplexstreamingservermethod":[3866625,10027014,12320769,13172737,22740997,24313857],"definition":[3997697,6160385,10682369,12320770,15335426,20709377,20774913,21954561,23986178,24248321,24510465],"documentation":[5570561,6684674,7143425,7405570,7471107,7536642,7602177,7667714,7733251,7798786,7929858,7995395,8060930,8126465,8192002,8257539,8323074,8388611,8519682,8585219,8650755,8716289,8781826,8847363,9109505,9175042,9240579,9306114,9371650,9699329,10485761,10682369,11075585,11468803,11534338,11599876,11665411,11730947,11927553,11993089,18874369,19202049,19267585,20447233,20512769,20578305,20643841,23265281,23592961],"datetime":[5898245,6029317,6553605,6684679,16973830,19857414],"defaults":[6029313,6553601,6684673,6750209,6815745,7012353,9699329,10944513,11599873,12189697],"defaultarg":[6029317,6553601,6684673,6750209,6815745,7012354,9699329,10944513,11599873,12189697],"defintion":[6094849,6225921,6291457,6356993],"deserialize":[8454145],"disk":[11010050,13303810,24576002],"detail":[11403270,12320769,15728642,21233670,24707075],"defines":[12320769,22151169],"deserializing":[12320769,23592961],"delegates":[12320769],"delegate":[12320769,22413317,22740997,22872069,24379397,24838149],"destination":[12386305,21430273],"deserialized":[13959169,16842753,21823489],"dispatched":[14745601,15204353,18284545,19333121,23199745,23855105],"describes":[15269889,23920641],"duplexstreaming":[23789569],"differs":[24772609],"deadlineexceeded":[24772609],"delayed":[24772609],"directory":[24772612],"deleted":[24772609],"dataloss":[24772609],"disabled":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_101.json b/doc/ref/csharp/html/fti/FTI_101.json
new file mode 100644
index 0000000000000000000000000000000000000000..f1e9b9f803c4323f37b407b85888c89a6a55e2fb
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_101.json
@@ -0,0 +1 @@
+{"events":[131074,23920641],"exposes":[131073,196609,262145,327681,393217,458753,524289,589825,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4456449,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22347777,22544385,22609921,22675457,22806529,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,24903681,24969217,25100289,25231361],"exception":[131076,3014660,3080196,3473415,7471123,7733267,7995408,8257552,9633793,12713986,12779522,12845058,12910594,15269903,23396356,23461892,23920671],"enable":[196609,655361,22151169],"end":[196609,1048577,12320769,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151170,22347777,22544385,22609921,22675457,22806529,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658498,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,24772609,24903681,24969217,25034753,25100289,25231361],"empty":[327681,458754,1310725,1441793,1507329,3604481,9764865,23658497,24051713,24707074,24772609],"entries":[327681,1310721,12320769,23658498],"eventually":[1769473,1835009,1900545,1966081,4653057,4915201,5111809,5308417,21561345,21626881,21692417,21757953],"equals":[1769473,1835009,1900545,1966081,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4456449,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23592961,23658497,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,25231361],"equal":[1769473,1835009,1900545,1966081,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4456449,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23592961,23658497,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,25231361],"explicitly":[2228226,6553602,12320769,14221313,17825793,22020098,22347777,22609921],"enters":[2228225,6553601,22020097],"error":[2228225,3014660,3080196,6684673,7471116,7536651,7995402,8060937,11862017,12124161,12713989,12845061,15269889,15728641,21299201,22020097,23396356,23461892,23920641,24707073,24772615],"extension":[2686977,2818049,2883585,11468802,11534338,11599874,11665410,12451841,22937601,23068673,23265281,24903681],"entire":[2686978,4259842,11468801,11534337,22937602,24772609,24903682],"executes":[2686977,4259841,11468801,22937601,24903681],"element":[2686977,4259841,11468801,22937601,24903681],"elements":[2686977,2818049,2883585,4259843,11534337,11599879,11665415,13434882,22937601,23068673,23265281,24903683],"enumerable":[2818049,2883585,4259842,11599873,11665409,13434882,23068673,23265281,24903682],"entry":[3276801,3342340,8519689,8781832,8847369,8912899,8978440,9043976,9109510,9175048,9240585,9306120,12320770,12976129,13041670,15138824,18939908,19005443,19070979,19136515,19267592,23658509,23724049],"exceptions":[3473409,23920641],"enumerator":[3932161,3997697,10616833,10747905,24444929,24510465],"encoded":[7340034,11075585,11141121,11272193,13303809,14876674,15663105,18546689,18612225,21168129,23330818,24576001,24641537],"environment":[11010049,13303809,24576001],"extensionattribute":[11468803,11534339,11599875,11665411,24903683],"errormessage":[11862021,12124165],"expensive":[12320769,22020097],"encapsulates":[12320770,22806529,23592961],"encoding":[12320769,15597569,20971521,23330817,24576001],"exchanged":[12320769,23658497],"exposed":[12320769,15400961,20316161,24051713,24182785],"enumerations":[12320769],"enumeration":[12320769,22216706,22282242,22478850,23789570,24772610,25165826],"endpoint":[14090241,15400961,17498113,20054017,22020097,24051713],"encryption":[14352385,15466497,18022401,20381697,22675457,24117249],"exported":[15335425,20774913,23986177],"enforced":[15663105,21037057,24641537],"enum":[22216706,22282242,22478850,23789570,24772610,25165826],"expects":[22282241],"example":[24772611],"errors":[24772613],"expired":[24772609],"expire":[24772609],"entity":[24772610],"exists":[24772609],"execute":[24772609],"exhausting":[24772609],"exhausted":[24772609],"execution":[24772609],"enabled":[24772609],"expected":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_102.json b/doc/ref/csharp/html/fti/FTI_102.json
new file mode 100644
index 0000000000000000000000000000000000000000..a1d03f68e2edcfd4c6217dedb47a18d38bd5e99d
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_102.json
@@ -0,0 +1 @@
+{"follow":[1,2818049,7274497,23068673],"following":[131073,196609,262145,327681,393217,458753,524289,589825,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4456449,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400962,15466497,15532033,15597569,15663105,15728641,15794177,20316161,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22347777,22544385,22609921,22675457,22806529,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23855105,23920641,23986177,24051714,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,24903681,24969217,25100289,25231361],"fields":[196610,262146,327682,393218,458754,524290,589826,2031617,2097155,5570561,5832705,5898241,5963777,21823489,21889027,22151169,22544385,23658497,24182785,24707073,25100289,25231361],"field":[655362,720898,786434,851970,917506,983042,1048578,1114114,1179650,1245186,1310722,1376258,1441794,1507330,1572866,1638402],"fromaccesstoken":[1703937,4521989,21495809],"fromcredential":[1703937,4587525,21495809],"finished":[1769475,1835011,1900547,1966083,4653057,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5439489,5505025,9764865,21561347,21626883,21692419,21757955],"function":[1769473,1835009,1900545,1966081,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3276801,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4456449,4521985,4587521,4718593,4784129,4849665,4980737,5046273,5177345,5242881,5373953,5439489,5505025,5570561,5832705,5898241,5963777,6094849,6160385,6225921,6291457,6356993,6553601,6619137,6684673,6881281,7208961,7274497,7602177,8126465,8388609,8454146,8781825,8912897,9109505,9175041,9306113,9699329,9764865,9961473,10027009,10092545,10158081,10223617,10354689,10420225,10485761,10551297,10616833,10747905,10813441,11337729,11468801,11534337,11599873,11665409,11927553,11993089,15007746,18743297,18808833,21561345,21626881,21692417,21757953,22020097,22085633,22347777,22413313,22544385,22609921,22675457,22740993,22806529,23330817,23396353,23592962,23658497,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24379393,24444929,24510465,24576001,24641537,24838145,25231361],"fully":[1835009,1900545,2031617,2097153,3211265,4915201,5111809,14745601,15204353,18284545,19333121,21626881,21692417,21823489,21889025,23199745,23592961,23855105],"fashion":[2162689,6356993,21954561],"fatalfailure":[2228225,6553601,22020097,22282241],"finalize":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"free":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25165825,25231361],"freeing":[2686977,22937601],"foreachasync":[2686977,4259841,11468808,22937601,24903681],"false":[2818049,4259841,4390916,11599873,11796481,11862017,12058625,12124161,13434881,13500418,13631490,23068673,24903681,25034756],"fortype":[3014657,3080193,7602184,8126470,23396353,23461889],"finishes":[3538946,10420225,10813441,15400962,20185089,20250625,23986178,24051714],"first":[3604481,9764865,11468801,11534337,11599873,11665409,24051713],"finish":[6029313],"formatargs":[7405575,7471111,7536647,7667719,7733255,7798791,7929862,7995398,8060934,8192006,8257542,8323078],"func":[8388624,8454154,11468808,18743302,18808838],"file":[11010049,13303809,15269889,23920641,24576001,24772613],"fails":[11010049,12320769,13303809,23920641,24576001],"forceclientauth":[11272197],"flags":[12189704,12320769,15794178,21364742,25165825,25231362],"factory":[12255233,12320769,21495809,24248321],"functionality":[12320769,12386305,21430274],"files":[12320769,21954561],"format":[14090241,15400961,17498113,20054017,22020097,24051713],"fullname":[14745601,15204353,18284549,19333127,23199745,23855105],"frames":[15269889,23920641],"forceclientauthentication":[15663105,21037061,24641537],"failure":[22282242],"failed_precondition":[24772609],"failedprecondition":[24772609],"failures":[24772609],"flagsattribute":[25165828],"force":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_103.json b/doc/ref/csharp/html/fti/FTI_103.json
new file mode 100644
index 0000000000000000000000000000000000000000..398e827a531143bd5e4bcb8679499d5088f58d7f
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_103.json
@@ -0,0 +1 @@
+{"grpc":[65537,131074,196610,262146,327682,393218,458754,524291,589826,655365,720901,786437,851973,917509,983045,1048581,1114117,1179653,1245189,1310725,1376261,1441797,1507333,1572870,1638405,1703938,1769474,1835010,1900546,1966082,2031618,2097154,2162690,2228226,2293762,2359298,2424834,2490370,2555906,2621443,2686978,2752514,2818050,2883586,2949122,3014658,3080194,3145730,3211266,3276802,3342338,3407874,3473410,3538946,3604482,3670018,3735554,3801090,3866626,3932162,3997698,4063234,4128770,4194306,4259842,4325378,4390914,4456450,4521989,4587525,4653061,4718597,4784133,4849669,4915205,4980741,5046277,5111813,5177349,5242885,5308421,5373957,5439493,5505029,5570568,5636104,5701640,5767177,5832709,5898245,5963782,6029320,6094854,6160390,6225926,6291462,6356998,6422533,6488069,6553605,6619141,6684682,6750214,6815750,6881287,6946822,7012357,7077893,7143433,7208965,7274501,7340037,7405575,7471112,7536647,7602182,7667719,7733256,7798791,7864325,7929863,7995400,8060935,8126470,8192007,8257544,8323079,8388616,8454149,8519690,8585224,8650760,8716294,8781834,8847372,8912901,8978437,9043973,9109510,9175050,9240588,9306122,9371655,9437189,9502728,9568262,9633798,9699336,9764870,9830405,9895942,9961479,10027015,10092551,10158087,10223621,10289157,10354693,10420229,10485768,10551302,10616837,10682376,10747909,10813445,10878981,10944517,11010053,11075590,11141126,11206661,11272197,11337733,11403270,11468812,11534346,11599886,11665420,11730952,11796485,11862021,11927558,11993094,12058629,12124165,12189702,12255237,12320787,12386307,12451844,12517378,12582914,12648450,12713986,12779522,12845058,12910594,12976130,13041666,13107202,13172738,13238274,13303810,13369346,13434882,13500418,13565954,13631490,13697026,13762562,13828098,13893634,13959170,14024706,14090242,14155778,14221315,14286850,14352386,14417923,14483458,14548994,14614530,14680066,14745602,14811138,14876674,14942210,15007746,15073282,15138818,15204354,15269890,15335426,15400962,15466498,15532034,15597570,15663106,15728643,15794178,15859717,15925253,15990789,16056325,16121861,16187397,16252933,16318469,16384005,16449541,16515077,16580613,16646149,16711685,16777221,16842757,16908293,16973829,17039365,17104901,17170437,17235973,17301509,17367045,17432581,17498117,17563653,17629189,17694725,17760261,17825798,17891333,17956869,18022405,18087942,18153477,18219013,18284549,18350085,18415621,18481157,18546693,18612229,18677765,18743301,18808837,18874374,18939909,19005445,19070981,19136517,19202054,19267590,19333125,19398661,19464197,19529733,19595269,19660805,19726341,19791877,19857413,19922949,19988485,20054021,20119557,20185093,20250629,20316165,20381701,20447238,20512774,20578310,20643846,20709381,20774917,20840453,20905989,20971525,21037061,21102597,21168133,21233669,21299206,21364741,21430283,21495815,21561350,21626886,21692422,21757958,21823493,21889029,21954566,22020103,22085640,22151174,22216709,22282247,22347783,22413319,22478854,22544390,22609927,22675463,22741000,22806537,22872071,22937605,23003141,23068677,23134213,23199749,23265286,23330822,23396358,23461893,23527430,23592966,23658503,23724037,23789574,23855110,23920646,23986183,24051718,24117255,24182790,24248326,24313862,24379399,24444934,24510470,24576007,24641543,24707078,24772614,24838150,24903687,24969222,25034758,25100296,25165830,25231366],"goes":[196610,983041,1048577,22151170],"given":[1703937,2228225,2359297,2818049,2883585,4259842,4390914,4521985,6684673,6881281,9568257,9633793,11599873,11665409,11862017,12124161,13107202,13434882,13500417,13631489,21495809,22020097,22347777,23068673,23265281,23920642,24903682,25034754],"googlecredential":[1703937,4587521,21495809],"generic":[1769473,1835009,1900545,1966081,2031617,2686977,2752513,2818049,2883585,3211265,3407873,6094849,6160385,6225921,6291457,6356993,6750209,6815745,6881281,7602177,8126465,8388609,9961473,10027009,10092545,10158081,10944513,11206657,11272193,11468801,11534337,11599878,11665413,11927553,11993089,12320769,13697025,13762561,13828097,13893633,13959169,14483457,14548993,14614529,14811137,15007745,15204353,21561345,21626881,21692417,21757953,21823489,22413313,22740993,22937601,23003137,23068673,23199745,23265281,23592961,23855105,24379393,24838145],"getawaiter":[1769473,1966081,4718597,5373957,21561345,21757953],"gethashcode":[1769473,1835009,1900545,1966081,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4456449,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23592961,23658497,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,25231361],"getstatus":[1769473,1835009,1900545,1966081,4784133,4980741,5177349,5439493,21561345,21626881,21692417,21757953],"gets":[1769475,1835011,1900547,1966083,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932162,3997698,4063233,4128769,4194305,4456449,4784129,4849665,4980737,5046273,5177345,5242881,5439489,5505025,10616833,10747905,11010049,13303809,13959172,14090241,14155780,14417921,14680065,14745604,15007746,15138819,15204358,15269896,15728642,15794177,16646145,16711681,16777217,16842753,17235969,17301505,17367041,17432577,17563649,18087937,18219009,18284545,18350081,18415617,18481153,18743297,18808833,19005441,19070977,19136513,19333121,19398657,19464193,19529729,19595265,19660801,21233665,21299201,21364737,21561347,21626883,21692419,21757955,21823493,21889025,22020098,22085637,22347777,22544385,22609921,22675457,22806530,23134209,23199748,23330817,23396353,23592963,23658497,23724036,23855111,23920649,23986177,24051713,24117249,24182785,24248321,24313857,24444930,24510466,24576002,24641537,24707075,25231362],"gettrailers":[1769473,1835009,1900545,1966081,4849669,5046277,5242885,5505029,21561345,21626881,21692417,21757953],"gettype":[1769473,1835009,1900545,1966081,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4456449,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23592961,23658497,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,25231361],"garbage":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"grpcenvironment":[2621443,7143427,12320769,14417923,18087938,22806535],"getenumerator":[3276801,3932161,3997697,9109512,10616839,10747911,23658497,24444929,24510465],"getbaseexception":[3473409,23920641],"getobjectdata":[3473409,23920641],"grpc_default_ssl_roots_file_path":[11010049,13303809,24576001],"guide":[11468801,11534337,11599873,11665409],"google":[12255233,21430273],"generated":[12320770,21954562],"general":[12320769,22020097],"grpc_channel_args":[12320769,22085633],"grpc_connectivity_state":[12320769,22282241],"grpc_compression_level":[12320769,22478849],"grpc_status_code":[12320769,24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_104.json b/doc/ref/csharp/html/fti/FTI_104.json
new file mode 100644
index 0000000000000000000000000000000000000000..4c30282ae7c9873288656533d97322c442233038
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_104.json
@@ -0,0 +1 @@
+{"http2initialsequencenumber":[196609,786437,22151169],"http2":[196610,786433,851969,22151170],"headers":[327681,1245185,2097153,3604482,5963783,6029320,9764868,12320771,13697025,13762561,13828097,13893633,14024706,15990785,16121857,16252929,16449537,17039366,21561345,21626881,21692417,21757953,21889027,22872065,23658499,24051714],"hash":[1769473,1835009,1900545,1966081,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4456449,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23592961,23658497,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,25231361],"handlers":[3997697,10682369,12320771,22609921,23265281,24248321,24510465],"headerinterceptor":[4521989,4587525,12320769,14221313,17760268,22347777,22872069],"header":[4521985,4587521,14221313,17760257,22347777],"host":[5701639,5767174,6750209,6815751,9895942,10551302,12648450,13959170,14221315,15400962,15532033,16580614,17825799,19922950,20578311,21823490,22020098,22347779,24051714,24182785],"holding":[9043969,13041665,23724033],"handler":[9961478,10027014,10092550,10158086,12320773,22413313,22740993,23658497,24379393,24838145],"helper":[12320769,21954561],"hosts":[14221313,17825793,22347777],"helplink":[15269889,23920641],"help":[15269889,23920641],"hresult":[15269890,23920642],"hierarchy":[21495809,21561345,21626881,21692417,21757953,21954561,22020097,22085633,22151169,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23527425,23658497,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24903681,24969217,25034753,25100289,25231361],"high":[22478850],"hint":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_105.json b/doc/ref/csharp/html/fti/FTI_105.json
new file mode 100644
index 0000000000000000000000000000000000000000..d521afa4a080b84949dca4ea53c1be10584e4d5f
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_105.json
@@ -0,0 +1 @@
+{"inherited":[131073,1769476,1835012,1900548,1966084,2031620,2097156,2228230,2293764,2359302,2424838,2490374,2555910,2621446,2686978,2818049,2883585,2949124,3014662,3211268,3276804,3342339,3407878,3473416,3538950,3604486,3670022,3735558,3801094,3866630,3932166,3997702,4063236,4128774,4194307,4456454,14483457,14614529,14811137,15269896,21561348,21626884,21692420,21757956,21823492,21889028,22020102,22085636,22347782,22544390,22609926,22675462,22806534,22937603,23068674,23265282,23330820,23396358,23592964,23658500,23724035,23855110,23920657,23986182,24051718,24117254,24182790,24248326,24313862,24444934,24510470,24576004,24641542,24707075,25231366],"initial":[196609,786433,15400961,20119553,22151169,24051713],"incoming":[196609,851969,22151169],"instance":[327681,1310721,1769473,1835009,1900545,1966081,2031621,2097159,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211268,3276801,3342339,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194307,4456449,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6946817,7077889,8978433,9043969,9437185,9502721,9830401,9961473,10027009,10092545,10158081,10289153,11403265,11468802,11534338,11599874,11665410,12189697,12517379,13041666,14352385,15269889,15466497,18022401,20381697,21561345,21626881,21692417,21757953,21823496,21889032,22020097,22085633,22347778,22544385,22609921,22675459,22806529,23330817,23396353,23592964,23658499,23724037,23855106,23920642,23986177,24051713,24117251,24182785,24248321,24313858,24444929,24510465,24576001,24641537,24707076,25231362],"initonly":[1179649,1310721,1441793,1507329,1638401],"int":[1376259,6422531,6815747,8847364,9175044,9240580,9371652,9895939,10485763,10551302,11730950,17235972,18874373,19267588,20447236,20643844],"integer":[1376257,6422531,6815745,8847361,9175041,9240577,9371649,9895937,10485761,10551298,11730946,12582913,14155777,17235970,18874369,19267585,20447233,20643841,22085634,22216706],"int32":[1376257,3932161,6422530,6815746,8847365,9175041,9240581,9371652,9895937,10485762,10551300,11730952,12582913,12648449,13238273,17235969,18874369,19267587,20447233,20643841,22020097,22085633,24444929],"interceptor":[1703938,4521986,4587522,12320769,14221314,17760258,21495810,22347778,22872065],"implements":[1703937,4587521,4653057,4915201,5111809,5308417,7405569,7471105,7536641,7602177,7667713,7733249,7798785,8519681,8716289,8781825,8847361,9109505,9175041,9240577,9306113,9371649,10616833,10747905,18874369,19202049,19267585,19333121,19398657,19595265,19660801,21495809,21561345,21626881,21692417,21757953,23396353,23658497,23855105,24444929,24510465],"itokenaccess":[1703937,4587526,21495809],"invalidoperationexception":[1769474,1835010,1900546,1966082,4390914,4784129,4849665,4980737,5046273,5177345,5242881,5439489,5505025,12058625,12124161,13631490,21561346,21626882,21692418,21757954,25034754],"indicates":[2031617,2097153,3211265,3342337,4194305,6553601,15728641,21299201,21823489,21889025,23592961,23724033,24707074,24772609],"invokes":[2162693,6094849,6160385,6225921,6291457,6356993,21954565],"independent":[2162689,6160385,21954561],"implicitly":[2228225,3604481,6553601,9764865,22020097,24051713],"iasyncstreamreader":[2686979,11468809,11534344,12320769,14483459,16187398,16318470,22413317,22740997,22937606],"idisposable":[2686977,4653057,4915201,5111809,5308417,21561348,21626884,21692420,21757956,22937605],"iasyncenumerator":[2686977,14483457,22937606],"interface":[2686977,2752513,2818049,2883585,3080193,7208961,7274497,7929857,7995393,8060929,8126465,8192001,8257537,8323073,12320769,12386305,12845057,12910593,14483457,14548993,14614529,14680065,14745601,14811137,18153473,18219009,18284545,18350081,18415617,18481153,21561345,21626881,21692417,21757953,22937607,23003141,23068678,23134213,23199749,23265286,23396353,23461893,23658500,23855105,24444930,24510466],"iasyncstreamwriter":[2752515,2818049,2883585,7208962,12320769,14548995,14614529,14811137,18153474,23003142,23068678,23265286],"iclientstreamwriter":[2818051,4259841,7274498,11599883,12320769,13434881,14614531,15859718,16056326,23068678,24903681],"iserverstreamwriter":[2883587,4259841,11665418,12320769,13434881,14811139,15400961,20316161,22740997,23265287,24051713,24379397,24903681],"info":[3014658,3080194,7667722,8192008,12320769,23396354,23461890,25100289],"ilogger":[3080195,7143430,7405569,7471105,7536641,7602183,7667713,7733249,7798785,7929860,7995397,8060932,8126472,8192004,8257541,8323076,12386305,12845058,12910594,18087942,23396356,23461894],"indexof":[3276801,9175049,23658497],"insert":[3276801,9240586,23658497],"information":[3473409,11468801,11534337,11599873,11665409,15269889,23920642,24772609],"invoked":[3604482,9764866,12320769,14221313,17760257,21823489,22347777,24051714],"immutable":[3866625,10223617,24313857],"ienumerable":[4259842,6750214,6815750,9109505,10616833,10747905,10944517,11206662,11272198,11599882,11665417,12648450,13369346,13434882,22020098,23658504,24444936,24510472,24641538,24903682],"initializes":[5636097,5701633,5767169,6946817,7077889,8454145,8978433,9043969,9437185,9502721,9830401,12189697,12517379,13041666,21823491,22347777,22675457,23592961,23658497,23724034,23855105,24117249,25231361],"intvalue":[6422533,14155777,17235973,22085633],"invoke":[6881281],"invocation":[6881281,6946817],"item":[8519687,8781831,9175047,9240583,9306119,15073281,19267590,23658497],"icollection":[8519681,8716289,8781825,8847361,9306113,18874369,19202049,23658500],"indicating":[8978433,9043969],"ienumerator":[9109510,10616838,10747910],"ilist":[9175041,9240577,9371649,19267585,21102598,23658500],"index":[9240583,9371655,19267590],"interceptors":[12255234,21495810],"inherit":[12255233,21495809,23920641,24576001,24641537],"indirectly":[12320769,21954561],"invoking":[12320769,22020097],"initialization":[12320769,22806529],"interfaces":[12320769,12386305],"ihaswriteoptions":[12320769,14680067,18219010,23134214],"imethod":[12320769,14745603,18284546,18350082,18415618,18481154,19333121,19398657,19595265,19660801,22872069,23199750,23855108],"ispropagatecancellation":[14286849,17891333,22544385],"ispropagatedeadline":[14286849,17956869,22544385],"insecure":[14352385,15466497,18022405,20381701,22675457,24117249],"isreadonly":[15073281,19202056,23658497],"isbinary":[15138817,18939909,23724033],"innerexception":[15269889,23920641],"immediate":[15269889,23920641],"indicate":[15728641,21299201,24707073],"inheritance":[21495809,21561345,21626881,21692417,21757953,21954561,22020097,22085633,22151169,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23527425,23658497,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24903681,24969217,25034753,25100289,25231361],"idle":[22282242],"inherits":[22937601,23068673,23265281,23920641,24576001,24641537],"invalidargument":[24772609],"invalid":[24772609],"invalid_argument":[24772609],"instead":[24772610],"identified":[24772609],"issue":[24772609],"implemented":[24772609],"internal":[24772610],"invariants":[24772609],"immediately":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_107.json b/doc/ref/csharp/html/fti/FTI_107.json
new file mode 100644
index 0000000000000000000000000000000000000000..6ce520d7967e45b7e82929d79c50be8cedb887dd
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_107.json
@@ -0,0 +1 @@
+{"keycertificatepair":[2949123,7340037,11141131,11206662,11272198,12320769,13303809,13369346,14876675,15597569,18546690,18612226,20905995,21102598,23330824,24576002,24641538],"killasync":[3538945,10420229,23986177],"key":[7340034,8585222,8650758,8978438,9043974,11141121,11206657,11272193,12320769,14876673,15138818,15269889,15597570,15663105,18612225,19005446,20905986,21102593,23330819,23724034,23920641,24576002,24641537],"known":[11010049,13303809,24576001,24772609],"keycertificatepairs":[11206661,11272197,15663105,21102597,24641537]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_108.json b/doc/ref/csharp/html/fti/FTI_108.json
new file mode 100644
index 0000000000000000000000000000000000000000..0e8d26a2391cefb16ba1ee06a2dcd0b5e7f34a2c
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_108.json
@@ -0,0 +1 @@
+{"link":[1,15269889,23920641],"length":[196609,917505,22151169],"listening":[393217,1376257,3932162,9895937,10485761,10551297,13238274,24182785,24444930],"literal":[655361,720897,786433,851969,917505,983041,1048577,1114113,1245185,1376257,1572865],"lastobservedstate":[2228225,6684679,22020097],"logger":[2621441,3014657,3080193,7143425,7602177,7864321,8126465,12386305,14417922,18087943,22806531,23396355,23461889],"list":[2686977,4259841,11534342,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,22937601,24903681],"logs":[3014662,3080198,7405569,7471105,7536641,7667713,7733249,7798785,7929857,7995393,8060929,8192001,8257537,8323073,12386306,12713986,12779522,12845058,12910594,21430273,23396359,23461894],"logging":[3014657,3080193,7143426,7405572,7471109,7536644,7602179,7667716,7733253,7798788,7864322,7929860,7995397,8060932,8126467,8192004,8257541,8323076,12386306,12713985,12779521,12845057,12910593,21430273,23396355,23461891],"listen":[3932162,9895937,10485761,10551297,12320769,13238274,15335425,20709377,23986178,24182785,24444930],"let":[6029317,6553601,6684673,6750209,6815745,7012354,9699329,10944513,11599873,12189697,20447233],"loaded":[11010049,13303809,24576001],"lightweight":[12255233,21430273],"library":[12255233,12320769,21430273,22806529],"logic":[12320770,21430273,23592961],"long":[12320769,22020097,24772609],"lived":[12320769,22020097],"like":[12320770,22609922,24772609],"layer":[12320770,22609922],"level":[12320769,22478849],"low":[22478850],"likely":[24772609],"loss":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_109.json b/doc/ref/csharp/html/fti/FTI_109.json
new file mode 100644
index 0000000000000000000000000000000000000000..6c114c9ab65566f7457e5130cd1746f2eff80b15
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_109.json
@@ -0,0 +1 @@
+{"members":[131073,196609,262145,327681,393217,458753,524289,589825,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4456449,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22216705,22282241,22347777,22478849,22544385,22609921,22675457,22806529,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23789569,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,24772609,24903681,24969217,25100289,25165825,25231361],"maxconcurrentstreams":[196609,851973,22151169],"maximum":[196610,851969,917505,22151170],"maxmessagelength":[196609,917509,22151169],"message":[196609,458754,917505,1441793,1507329,3014662,3080198,3604481,4390914,6094849,6225922,6291459,6356995,6881282,7208966,7405576,7471112,7536648,7667720,7733256,7798792,7929863,7995399,8060935,8192007,8257543,8323079,9633799,9764865,9961474,10027010,10092546,10158082,11862018,12124162,12713986,12779522,12845058,12910594,13107201,13500417,13631489,15269890,21561346,21626882,21692417,21757953,21823490,22151169,22413314,22740994,22937601,23003137,23068673,23396358,23461894,23855106,23920643,24051713,24379394,24707074,24838146,25034754,25165825],"metadata":[196610,327684,983041,1048577,1245186,1310728,1769473,1835009,1900545,1966081,3276804,3342339,4849670,5046278,5242886,5505030,5963781,6029317,8519693,8585221,8650757,8716291,8781836,8847374,8912899,8978438,9043974,9109513,9175052,9240590,9306124,9371652,9437190,9764869,12320773,12976131,13041669,14221313,15073283,15138821,15400961,15990790,16121862,16252934,16449542,17039366,17760257,18874371,18939906,19005443,19070979,19136515,19202051,19267595,20119559,20185094,21561345,21626881,21692417,21757953,22151170,22347777,22872074,23658521,23724043,24051713],"mutable":[655361,720897,786433,851969,917505,983041,1048577,1114113,1245185,1376257,1572865],"methods":[1703938,1769474,1835010,1900546,1966082,2031618,2097154,2162690,2228226,2293762,2359298,2424834,2490370,2555906,2621442,2686979,2752514,2818051,2883587,2949122,3014658,3080194,3145730,3211266,3276802,3342338,3407874,3473410,3538946,3604482,3670018,3735554,3801090,3866626,3932162,3997698,4063234,4128770,4194306,4259842,4325378,4390914,4456450,11468802,11534338,11599874,11665410,12255233,12320769,12451843,14745601,15204353,18284545,19333121,21495810,21561345,21626881,21692417,21757953,21823489,21889025,21954562,22020097,22085633,22347777,22544385,22609921,22675457,22806529,22937602,23003137,23068674,23199745,23265282,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23855106,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,24903682,24969218,25034754,25231361],"means":[1769473,1835009,1900545,1966081,4653057,4915201,5111809,5308417,6029313,21561345,21626881,21692417,21757953,24772609],"messages":[2162689,3604481,6094849,6160387,6225921,8454146,9502722,9764865,12320775,12386305,15204354,19464193,19529729,21954561,22937601,23003137,23068673,23265281,23461889,23592961,23658498,23855106,24051713],"memberwiseclone":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"method":[2359297,3407875,3604481,3866632,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636108,5701645,5767175,5832705,5898241,5963777,6094849,6160385,6225921,6291457,6356993,6553601,6619137,6684673,6881293,7143425,7208961,7274497,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8519681,8585217,8650753,8716289,8781825,8847361,8912897,9109505,9175041,9240577,9306113,9371649,9502729,9699329,9764866,9961487,10027023,10092559,10158095,10223617,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,11337729,11468805,11534341,11599877,11665413,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12320774,12517378,12713985,12779521,12845057,12910593,12976129,13172745,13238273,13434881,13500417,13565953,13631489,13959170,14745604,15204359,15269889,15400962,16646150,18284545,18350081,18415617,18481153,19333123,19398659,19464194,19529730,19595267,19660803,19988486,21823492,22347777,22413314,22740994,22872069,23199749,23789569,23855120,23920641,24051715,24248322,24313864,24379394,24838146],"movenext":[2686977,22937601],"marshallers":[3145731,8388613,12320770,14942211,18677762,23527432],"marshaller":[3145729,3211267,5767182,8388614,8454150,9502732,12320769,12517378,13959170,14942209,15007747,15204354,16777223,16842759,18677767,18743298,18808834,19464199,19529735,21823492,23527426,23592969,23855106],"member":[4521985,4587521,4718593,4784129,4849665,4980737,5046273,5177345,5242881,5373953,5439489,5505025,5570561,5832705,5898241,5963777,6094849,6160385,6225921,6291457,6356993,6553601,6619137,6684673,6881281,7143425,8388609,8585217,8650753,9699329,9764865,9961473,10027009,10092545,10158081,10223617,10354689,10420225,10485761,10551297,10682369,10813441,10878977,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18546689,18612225,18677761,18743297,18808833,18939905,19005441,19070977,19136513,19464193,19529729,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,22216705,22282241,22478849,23789569,24772609,25165825],"missing":[5570561,6684674,7143425,7405570,7471107,7536642,7602177,7667714,7733251,7798786,7929858,7995395,8060930,8126465,8192002,8257539,8323074,8388611,8519682,8585219,8650755,8716289,8781826,8847363,9109505,9175042,9240579,9306114,9371650,9699329,10485761,10682369,11075585,11468803,11534338,11599876,11665411,11730947,11927553,11993089,18874369,19202049,19267585,20447233,20512769,20578305,20643841,23265281,23592961],"methodtype":[9502725,12320769,18481158,19660807,23789573],"main":[12320769,21430273],"make":[12320769,21954561],"making":[12320770,21954561,22609921],"makes":[12320769,22609921],"mapping":[12320769,24248321],"microbenchmarks":[12451841,24969217],"multiple":[14221313,17825793,22347777],"meaning":[14221313,17825793,22347777],"maintains":[14548993,14614529,14811137,18153473,23003137,23068673,23265281],"mustinherit":[22347777,22675457,24117249],"medium":[22478850],"malformed":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_110.json b/doc/ref/csharp/html/fti/FTI_110.json
new file mode 100644
index 0000000000000000000000000000000000000000..4df2bf7fdeba4b0b848e3e91bd2f7cacba018d51
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_110.json
@@ -0,0 +1 @@
+{"namespace":[131073,196609,262145,327681,393217,458753,524289,589825,655362,720898,786434,851970,917506,983042,1048578,1114114,1179650,1245186,1310722,1376258,1441794,1507330,1572866,1638402,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4521986,4587522,4653058,4718594,4784130,4849666,4915202,4980738,5046274,5111810,5177346,5242882,5308418,5373954,5439490,5505026,5570562,5636098,5701634,5767170,5832706,5898242,5963778,6029314,6094850,6160386,6225922,6291458,6356994,6422530,6488066,6553602,6619138,6684674,6750210,6815746,6881282,6946818,7012354,7077890,7143426,7208962,7274498,7340034,7405570,7471106,7536642,7602178,7667714,7733250,7798786,7864322,7929858,7995394,8060930,8126466,8192002,8257538,8323074,8388610,8454146,8519682,8585218,8650754,8716290,8781826,8847362,8912898,8978434,9043970,9109506,9175042,9240578,9306114,9371650,9437186,9502722,9568258,9633794,9699330,9764866,9830402,9895938,9961474,10027010,10092546,10158082,10223618,10289154,10354690,10420226,10485762,10551298,10616834,10682370,10747906,10813442,10878978,10944514,11010050,11075586,11141122,11206658,11272194,11337730,11403266,11468802,11534338,11599874,11665410,11730946,11796482,11862018,11927554,11993090,12058626,12124162,12189698,12255233,12320770,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859714,15925250,15990786,16056322,16121858,16187394,16252930,16318466,16384002,16449538,16515074,16580610,16646146,16711682,16777218,16842754,16908290,16973826,17039362,17104898,17170434,17235970,17301506,17367042,17432578,17498114,17563650,17629186,17694722,17760258,17825794,17891330,17956866,18022402,18087938,18153474,18219010,18284546,18350082,18415618,18481154,18546690,18612226,18677762,18743298,18808834,18874370,18939906,19005442,19070978,19136514,19202050,19267586,19333122,19398658,19464194,19529730,19595266,19660802,19726338,19791874,19857410,19922946,19988482,20054018,20119554,20185090,20250626,20316162,20381698,20447234,20512770,20578306,20643842,20709378,20774914,20840450,20905986,20971522,21037058,21102594,21168130,21233666,21299202,21364738,21430274,21495810,21561346,21626882,21692418,21757954,21823490,21889026,21954562,22020098,22085634,22151170,22216706,22282242,22347778,22413314,22478850,22544386,22609922,22675458,22740994,22806530,22872066,22937602,23003138,23068674,23134210,23199746,23265282,23330818,23396354,23461890,23527426,23592962,23658498,23724034,23789570,23855106,23920642,23986178,24051714,24117250,24182786,24248322,24313858,24379394,24444930,24510466,24576002,24641538,24707074,24772610,24838146,24903682,24969218,25034754,25100290,25165826,25231362],"number":[196610,786433,851969,12320769,22151170,23789569,23986177],"normally":[1769473,1835009,1900545,1966081,4653057,4915201,5111809,5308417,12320769,21561345,21626881,21692417,21757953,24248321],"new":[2031617,2097155,2228225,2359297,3801089,3932162,5570561,5636099,5701635,5767171,5832705,5898241,5963777,6029315,6422530,6488066,6553601,6750210,6815746,6881281,6946819,7012355,7077891,7340035,7864322,8454147,8978435,9043971,9437187,9502723,9568259,9633795,9830403,9895939,10289155,10354689,10485761,10551297,10944515,11010050,11075586,11141122,11206658,11272194,11403267,12189699,12517379,13041666,13107202,13238274,14221313,17760257,21823492,21889028,22020097,22347779,22544385,22675457,23330817,23592961,23658497,23724034,23855105,23920642,23986177,24117249,24182785,24248321,24313857,24444930,24707073,25231361],"need":[2228225,6553601,22020097,25165826],"needs":[3604481,8978433,9764865,24051713],"null":[4390914,5701633,6029323,6553603,6684674,6750210,6815746,7208961,9699330,10944514,11927553,11993089,13565954,14221313,14548993,14614529,14811137,15597569,17825793,18153473,20905985,22347777,23003137,23068673,23265281,24576001,25034754],"nullable":[6029317,6553605,6684679,16973830],"nullptr":[6029317,6553601,6684673,6750209,6815745,9699329,10944513],"names":[12320770,22151169,24248321],"native":[12320769,22609921],"numerical":[15269889,23920641],"namespaces":[21430274],"notinheritable":[21495809,21561345,21626881,21692417,21757953,21954561,22085633,22151169,23330817,23527425,23658497,24576001,24903681,24969217,25034753,25100289],"notfound":[24772609],"nocompress":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_111.json b/doc/ref/csharp/html/fti/FTI_111.json
new file mode 100644
index 0000000000000000000000000000000000000000..d6598433cd778712a6bda275cc726c031d61bb58
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_111.json
@@ -0,0 +1 @@
+{"occurs":[131073,2228225,6684673,22020097,23920641],"object":[131073,1769480,1835015,1900551,1966088,2031618,2097154,2228235,2293767,2359307,2424843,2490379,2555915,2621451,2949127,3014671,3080196,3211266,3276807,3342338,3407883,3473416,3538955,3604491,3670027,3735563,3801100,3866635,3932171,3997707,4063239,4128779,4194306,4456459,4718593,5373953,6094849,6160385,6225921,6291457,7405577,7471115,7536650,7667721,7733259,7798794,7929863,7995401,8060936,8192007,8257545,8323080,10223617,10354690,11468801,11534337,11599873,11665409,12320769,12713986,12779522,12845058,12910594,15269889,21495809,21561353,21626888,21692424,21757961,21823490,21889026,21954562,22020108,22085640,22151169,22347788,22544396,22609932,22675468,22806540,23330824,23396368,23461892,23527425,23592962,23658504,23724034,23855116,23920651,23986188,24051724,24117260,24182796,24248333,24313868,24444940,24510476,24576008,24641548,24707074,24903681,24969217,25034753,25100289,25231372],"override":[196609,1114113,4653057,4915201,5111809,5308417,7405569,7471105,7536641,7602177,7667713,7733249,7798785,8519681,8716289,8781825,8847361,8912899,9109505,9175041,9240577,9306113,9371649,10616833,10747905,11337731,18874369,19202049,19267585,19333121,19398657,19595265,19660801,22151169],"options":[262145,589825,1179649,1638401,2031617,5570567,5636102,5701638,5767174,6029313,6750216,6815752,6881286,7012353,9699336,10944520,12320773,13959170,14024705,14548994,14614530,14680065,14811138,15400961,16711686,17170433,18153474,18219009,20316161,21823491,21889026,22151169,22544387,23003138,23068674,23134210,23265282,24051713,25231362],"oauth2":[1703937,4521986,12255233,21430273,21495809],"obtain":[1703937,4587522,21495809],"operations":[1769473,1835009,1900545,1966081,2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,4653057,4915201,5111809,5308417,12320770,21561345,21626881,21692417,21757953,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,24772609,25165825,25231362],"one":[2752513,2818049,2883585,3473409,7208961,12320769,23003137,23068673,23265281,23920641,23986177,24772609],"overrides":[3342337,4194305,8912897,11337729,23724033,24707073],"overridden":[3473410,23920642],"overload":[5636097,5701633,5767169,6422529,6488065,6750209,6815745,7471105,7536641,7733249,7798785,7995393,8060929,8257537,8323073,8519681,8585217,8650753,8978433,9043969,9568257,9633793,9961473,10027009,10092545,10158081,10485761,10551297,11010049,11075585,11141121,11206657,11272193,11599873,11665409,11796481,11862017,11927553,11993089,12058625,12124161,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489],"optional":[6029322,6553602,6684674,6750210,6815746,7012356,9699330,10944514,11599874,12189698,12320769,24707073],"obtained":[6029313],"option":[6422529,6488065,12320769,12582914,22085635,22216706],"omit":[11468801,11534337,11599873,11665409],"objects":[12320771,22020097,23134209,24248321],"operation":[12320769,22020097,24772618],"optiontype":[12320769,17432582,22216709],"original":[14090241,17629185,22020097],"operatio":[24772609],"outofrange":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_112.json b/doc/ref/csharp/html/fti/FTI_112.json
new file mode 100644
index 0000000000000000000000000000000000000000..f8b685b9ef5e99a173afdd1ee6a08b7bf7ba24f2
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_112.json
@@ -0,0 +1 @@
+{"primaryuseragentstring":[196609,983045,22151169],"primary":[196609,983041,22151169],"propagation":[262145,1179649,3604481,6029313,7012353,9699329,22544386,24051713],"pickunused":[393217,1376261,20447233,24182785],"pass":[393217,1376257,24182785],"port":[393219,1376259,3932164,6750209,6815751,9895946,10485762,10551306,12320769,12648450,13238276,15335425,15466497,15532033,20381697,20447234,20643847,20709377,22020098,23986177,24117249,24182790,24444932],"ports":[393217,1376257,12320770,15335426,20709382,23986179,24182785,24444929],"property":[393217,1376257,14221313,14548993,14614529,14811137,15400961,15859716,15925252,15990788,16056324,16121860,16187396,16252932,16318468,16384004,16449540,16515076,16580612,16646148,16711684,16777220,16842756,16908292,16973828,17039364,17104900,17170436,17235972,17301508,17367044,17432580,17498116,17563652,17629188,17694724,17760260,17825797,17891332,17956868,18022404,18087940,18153477,18219012,18284548,18350084,18415620,18481156,18546692,18612228,18677764,18743300,18808836,18874372,18939908,19005444,19070980,19136516,19202052,19267588,19333124,19398660,19464196,19529732,19595268,19660804,19726340,19791876,19857412,19922948,19988484,20054020,20119556,20185092,20250628,20316165,20381700,20447236,20512772,20578308,20643844,20709380,20774916,20840452,20905988,20971524,21037060,21102596,21168132,21233668,21299204,21364740,22347777,23003137,23068673,23265281,24051713,24182785],"public":[655363,720899,786435,851971,917507,983043,1048579,1114115,1179651,1245187,1310723,1376259,1441795,1507331,1572867,1638403,4521987,4587523,4653059,4718595,4784131,4849667,4915203,4980739,5046275,5111811,5177347,5242883,5308419,5373955,5439491,5505027,5570563,5636099,5701635,5767171,5832707,5898243,5963779,6029315,6094851,6160387,6225923,6291459,6356995,6422531,6488067,6553603,6619139,6684675,6750211,6815747,6946819,7012355,7143427,7340035,7405571,7471107,7536643,7602179,7667715,7733251,7798787,7864323,8388611,8454147,8519683,8585219,8650755,8716291,8781827,8847363,8912899,8978435,9043971,9109507,9175043,9240579,9306115,9371651,9437187,9502723,9568259,9633795,9699331,9764867,9895939,9961475,10027011,10092547,10158083,10223619,10289155,10354691,10420227,10485763,10551299,10616835,10682371,10747907,10813443,10878979,10944515,11010051,11075587,11141123,11206659,11272195,11337731,11403267,11468803,11534339,11599875,11665411,11730947,11796483,11862019,11927555,11993091,12058627,12124163,12189699,15859715,15925251,15990787,16056323,16121859,16187395,16252931,16318467,16384003,16449539,16515075,16580611,16646147,16711683,16777219,16842755,16908291,16973827,17039363,17104899,17170435,17235971,17301507,17367043,17432579,17498115,17563651,17629187,17694723,17760259,17825795,17891331,17956867,18022403,18087939,18546691,18612227,18677763,18743299,18808835,18874371,18939907,19005443,19070979,19136515,19202051,19267587,19333123,19398659,19464195,19529731,19595267,19660803,19726339,19791875,19857411,19922947,19988483,20054019,20119555,20185091,20250627,20316163,20381699,20447235,20512771,20578307,20643843,20709379,20774915,20840451,20905987,20971523,21037059,21102595,21168131,21233667,21299203,21364739,21495811,21561347,21626883,21692419,21757955,21823491,21889027,21954563,22020099,22085635,22151171,22216707,22282243,22347779,22413315,22478851,22544387,22609923,22675459,22740995,22806531,22872067,22937603,23003139,23068675,23134211,23199747,23265283,23330819,23396355,23461891,23527427,23592963,23658499,23724035,23789571,23855107,23920644,23986179,24051715,24117251,24182787,24248323,24313859,24379395,24444931,24510467,24576004,24641540,24707075,24772611,24838147,24903683,24969219,25034755,25100291,25165827,25231363],"provides":[1769473,1835009,1900545,1966081,4653057,4915201,5111809,5308417,12255233,12320770,12386305,14352385,15466497,18022401,20381697,21430274,21561345,21626881,21692417,21757953,22609921,22675457,24117249,25100289],"pending":[1769473,1835009,1900545,1966081,2752513,2818050,2883585,4653057,4915201,5111809,5308417,7208961,7274497,21561345,21626881,21692417,21757953,23003137,23068674,23265281],"provided":[2031617,2097155,5570561,5832705,5898241,5963777,21823489,21889027],"preserved":[2031617,2097155,5570561,5832705,5898241,5963777,21823489,21889027],"perform":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"performs":[2686977,22937601],"progress":[3538945,10420225,23986177],"procedure":[3538946,10420225,10813441,12320770,23920641,23986178,24772609],"propagate":[3604481,9699329,12320769,22609921,24051713],"preceded":[4325377,11730945,24969217],"phase":[4325377,11730945,24969217],"preconditions":[4390914,11796482,11862018,11927555,11993091,12058626,12124162,12451842,13500418,13565954,13631490,25034759],"parameters":[4521985,4587521,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094850,6160386,6225922,6291458,6356994,6422529,6488065,6553601,6684673,6750209,6815745,6881282,6946817,7012353,7143425,7208961,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388610,8454145,8519681,8585217,8650753,8781825,8847361,8978433,9043969,9175041,9240577,9306113,9371649,9502721,9568257,9633793,9699329,9764865,9895937,9961474,10027010,10092546,10158082,10289153,10354689,10485761,10551297,10682369,10944513,11075585,11141121,11206657,11272193,11403265,11468802,11534338,11599874,11665410,11730945,11796481,11862017,11927554,11993090,12058625,12124161,12189697,19267585,21561345,21626881,21692417,21757953,21823489,22413314,22740994,22872065,22937601,23003137,23068673,23265281,23592961,23855105,24379394,24838146],"param":[5570561,6684674,7143425,7405570,7471107,7536642,7667714,7733251,7798786,7929858,7995395,8060930,8192002,8257539,8323074,8388610,8519681,8585218,8650754,8781825,8847362,9175041,9240578,9306113,9371649,9699329,10485761,10682369,11075585,11468802,11534337,11599875,11665410,11730947],"propagationtoken":[6029319,14024705,17104901,21889025],"providing":[6094849,6160385,6225921,6291457],"protected":[6881283,7077891,9830403],"propagatedeadline":[7012359],"propagatecancellation":[7012359],"parent":[7012354,14024705,14286850,17104897,17891329,17956865,21889025,22544386],"propagated":[7012354,14286850,17891329,17956865,22544386],"private":[7340034,14876673,18612225,23330818],"pair":[7340033,11141121,12320769,15597570,20905986,23330818,24576002],"privatekey":[7340037,14876673,18612229,23330817],"pem":[7340034,11075585,11141121,11272193,12320769,13303809,14876674,15597569,15663105,18546689,18612225,20971521,21168129,23330819,24576002,24641537],"params":[7405569,7471105,7536641,7667713,7733249,7798785,7929857,7995393,8060929,8192001,8257537,8323073],"paramarray":[7405569,7471105,7536641,7667713,7733249,7798785,7929857,7995393,8060929,8192001,8257537,8323073],"pointed":[11010049,13303809,24576001],"place":[11010049,13303809,24576001],"proves":[11272193],"parameter":[11468801,11534337,11599873,11665409,11993089],"programming":[11468801,11534337,11599873,11665409],"paramname":[11993093],"protocol":[12320770,21954561,24248321],"possible":[12320769,22020097],"propagating":[12320770,14024705,17104897,21889025,22609922],"properties":[12320769,13697026,13762562,13828098,13893634,13959170,14024706,14090242,14155778,14221314,14286850,14352386,14417922,14483458,14548994,14614530,14680066,14745602,14811138,14876674,14942210,15007746,15073282,15138818,15204354,15269890,15335426,15400963,15466498,15532034,15597570,15663106,15728642,15794178,20316161,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085633,22347777,22544385,22609921,22675457,22806529,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23527425,23592961,23658497,23724033,23855105,23920641,23986177,24051714,24117249,24182785,24576001,24641537,24707073,25231361],"part":[12320769,24248321],"pairs":[15269889,15663105,21102593,23920641,24641537],"provide":[15269889,23920641],"peer":[15400961,20054021,24051713],"pick":[20447233],"problematic":[24772609],"permissiondenied":[24772609],"permission":[24772609],"permission_denied":[24772610],"past":[24772610],"particular":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_113.json b/doc/ref/csharp/html/fti/FTI_113.json
new file mode 100644
index 0000000000000000000000000000000000000000..50cc318bdfeb1bef3e80e5eb8815cf25c70b6ed7
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_113.json
@@ -0,0 +1 @@
+{"qualified":[2031617,2097153,3211265,5767169,14745601,15204353,18284545,19333121,21823489,21889025,23199745,23592961,23855105],"quota":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_114.json b/doc/ref/csharp/html/fti/FTI_114.json
new file mode 100644
index 0000000000000000000000000000000000000000..eb0e8484e8173c5c650ba55ab1e246ceb093157f
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_114.json
@@ -0,0 +1 @@
+{"redirected":[1],"rpcexception":[131075,3473411,9568263,9633799,12320770,13107206,15269891,19726338,23920652],"reference":[131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390915,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927560,11993096,12058625,12124161,12189697,12320769,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565955,13631489,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18153473,18219009,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19267585,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22216705,22282241,22347777,22413313,22478849,22544385,22609921,22675457,22740993,22806529,22872065,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23789569,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24379393,24444929,24510465,24576001,24641537,24707073,24772609,24838145,24903681,24969217,25034755,25100289,25165825,25231361],"receive":[196609,917505,22151169],"read":[327681,1310721,1835009,1900545,2686977,4259841,4915201,5111809,11534337,12320769,13762561,13828097,16187393,16318465,21626882,21692418,22937602,23658497,24903681],"result":[458754,1441793,1507329,1769474,1835009,1900545,1966082,4653058,4915201,5111809,5308418,12320770,13697025,13893633,14352385,15466497,15925249,16384001,18022401,20381697,21561347,21626881,21692417,21757955,22675457,24117249,24707075,24772609],"rpc":[458754,1441793,1507329,2228226,6553602,12320770,15400965,19857409,19922945,19988481,20185089,20250625,21954561,22020098,24051717,24707075],"readonly":[1179650,1310722,1441794,1507330,1638402,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17891329,17956865,18022401,18087937,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737],"request":[1769473,1835009,1966081,2162689,2228225,3866625,4653057,4915201,5308417,5767169,6029313,6094849,6160386,6225923,6291458,6356994,6553601,6881281,9502721,9961473,10027009,10092545,10158082,12320771,13172737,14221313,15204353,17760257,19464193,21561346,21626882,21757954,21823489,21954561,22020097,22347777,22413313,22740993,23658498,23789571,23855106,24313857,24379398,24772609,24838150],"received":[1769473,1966081,4653057,5308417,21561345,21757953,23789571,24772609],"requests":[1769473,1835009,1900545,1966081,2162690,3538946,4653057,4915201,5111809,5308417,6094849,6160385,10420225,10813441,13697025,13762561,13959169,15859713,16056321,16777217,21561346,21626882,21692417,21757953,21823489,21954562,23789569,23986178],"resources":[1769473,1835009,1900545,1966081,2228226,2359297,2424833,2490369,2555905,2621441,2686977,3014657,3407873,3473409,3538946,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,4653057,4915201,5111809,5308417,6619137,10813441,21561345,21626881,21692417,21757953,22020098,22347777,22544385,22609921,22675457,22806529,22937601,23396353,23855105,23920641,23986178,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"released":[1769473,1835009,1900545,1966081,4653057,4915201,5111809,5308417,21561345,21626881,21692417,21757953],"returns":[1769473,1835009,1900545,1966081,2031619,2097157,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014658,3080193,3211266,3276801,3342338,3407873,3473410,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194306,4456449,5570561,5832705,5898241,5963777,7602177,8126465,8912897,11337729,14352385,14942209,15138817,15466497,18022401,18677761,18939905,20381697,21561345,21626881,21692417,21757953,21823491,21889029,22020097,22085633,22347777,22544385,22609921,22675458,22806529,23330817,23396354,23461889,23527425,23592962,23658497,23724035,23855105,23920642,23986177,24051713,24117250,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707074,25231361],"represents":[1769473,1835009,1900545,1966081,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3276801,3342337,3407873,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4456449,8912897,11337729,12320770,21561345,21626881,21692417,21757953,22020098,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23658497,23724033,23855105,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707074,25231361],"response":[1835009,1900545,2162690,3604484,3866625,4915201,5111809,5767169,6094851,6160386,6225922,6291458,6356994,6881281,9502721,9764870,9961473,10027009,10092545,10158082,12320772,13172737,13697025,13762561,13828097,13893633,15204353,15400961,15990785,16121857,16252929,16449537,19529729,20316161,21561346,21626883,21692419,21757955,21823489,21954562,22413313,22740993,23658499,23789570,23855106,24051717,24313857,24379393,24772609,24838145],"responds":[2162691,6094849,6160385,6225921,21954563],"responses":[2162690,6160385,6225921,13762561,13828097,13959169,16187393,16318465,16842753,21626881,21692417,21823489,21954562,23789570],"remote":[2162690,6291457,6356993,6946817,12320777,14090241,15400961,17498113,20054017,21954562,22020099,23199745,23658499,23855105,23920641,24051713,24772609],"requesting":[2228225,6553601,22020097],"returned":[2228227,3538946,6553601,6684674,10420225,10813441,22020099,23986178,24772611],"ready":[2228225,6553601,22020097,22282242],"reached":[2228226,6553601,6684673,22020098],"requires":[2228225,6553601,22020097],"reclaimed":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"releasing":[2686977,22937601],"resetting":[2686977,22937601],"reads":[2686978,4259842,11468801,11534337,22937602,24903682],"remove":[3276801,9306121,23658497],"removeat":[3276801,9371657,23658497],"root":[3473409,11075585,11141121,11206657,11272193,13303809,13369345,15597569,15663105,20971521,21168129,23920641,24576002,24641538],"runtime":[3473409,23920641],"representation":[3473409,12320769,15269889,23199745,23920642],"return":[3932162,4521985,4587521,4718593,4784129,4849665,4980737,5046273,5177345,5242881,5373953,5439489,5505025,5570561,5832705,5898241,5963777,6094849,6160385,6225921,6291457,6356993,6553601,6619137,6684673,6881281,7208961,7274497,7602177,8126465,8388609,8781825,8912897,9109505,9175041,9306113,9699329,9764865,9895937,9961473,10027009,10092545,10158081,10223617,10354689,10420225,10485762,10551298,10616833,10747905,10813441,11337729,11468801,11534337,11599873,11665409,11927553,11993089,12320772,13238274,21561345,21626881,21692417,21757953,22413313,22740993,24379393,24444930,24772609,24838145],"register":[3997697,10682369,14221313,15335426,17760257,20709377,20774913,22347777,23986178,24510465],"runbenchmark":[4325377,11730952,24969217],"runs":[4325377,11730945,24969217],"requestmarshaller":[5767173,9502725,13959169,15204353,16777221,19464197,21823489,23855105],"responsemarshaller":[5767173,9502725,13959169,15204353,16842757,19529733,21823489,23855105],"ref":[6094850,6160386,6225922,6291458,6356994,6881282,9961474,10027010,10092546,10158082,11468801,11534337,11599873,11665409,21495809,21561345,21626881,21692417,21757953,21954561,22020097,22085633,22151169,22347777,22413314,22544385,22609921,22675457,22740994,22806529,23330817,23396353,23527425,23658497,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24379394,24444929,24510465,24576001,24641537,24838146,24903681,24969217,25034753,25100289,25231361],"reponse":[6160385],"req":[6225925,6291461,6356997],"resulting":[9568257,9633793,12320770,15269889,19726337,23658497,23920642],"responseheaders":[9764869],"roots":[11010049,13303809,24576001],"rootcertificates":[11075590,11141125,11272198,15597569,15663105,20971525,21168133,24576001,24641537],"rejected":[11272193,24772609],"registered":[12255233,21495809],"representing":[12320769,21430273],"reuse":[12320770,22020098],"redirect":[12386305,21430273],"requeststream":[13697025,13762561,15859717,16056325,21561345,21626881,22413317,22740997],"responseasync":[13697025,13893633,15925253,16384005,21561345,21757953],"responseheadersasync":[13697025,13762561,13828097,13893633,15990789,16121861,16252933,16449541,21561345,21626881,21692417,21757953],"responsestream":[13762561,13828097,16187397,16318469,21626881,21692417,22740997,24379397],"resolvedtarget":[14090241,17498117,22020097],"resolved":[14090241,17498113,22020097],"requestheaders":[15400961,20119557,24051713],"responsetrailers":[15400961,20185093,24051713],"recover":[22282242],"raised":[24772609],"regardless":[24772609],"requested":[24772609],"rejections":[24772609],"resource":[24772610],"resource_exhausted":[24772609],"resourceexhausted":[24772609],"required":[24772609],"rmdir":[24772609],"range":[24772609],"reading":[24772609],"retrying":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_115.json b/doc/ref/csharp/html/fti/FTI_115.json
new file mode 100644
index 0000000000000000000000000000000000000000..37245fd262a245e5c5fbc7c43fb4369c19e9c3de
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_115.json
@@ -0,0 +1 @@
+{"search":[65537],"sort":[65537],"serializeobjectstate":[131073,23920641],"serialized":[131074,23920642],"state":[131073,2228227,6553602,6684673,12320769,14090242,17563654,22020101,22282241,23920641,24772611],"stats":[196609,655361,22151169],"sequence":[196609,786433,22151169],"streams":[196609,851969,6160385,22151169],"start":[196609,983041,3538945,3932161,3997697,10485761,10682369,10878981,13238273,22151169,23986177,24444929,24510465],"secondaryuseragentstring":[196609,1048581,22151169],"secondary":[196609,1048577,22151169],"ssltargetnameoverride":[196609,1114117,22151169],"ssl":[196609,1114113,11010049,11075585,11141121,11206657,11272193,12320770,13303811,13369346,22151169,24576004,24641539],"suffix":[327681,1245185,8978433,9043969,23658497],"serverport":[393219,1376258,3735555,3932161,9895941,10485773,10616838,12320769,13238273,15532035,20447235,20512771,20578307,20643843,24182792,24444933],"server":[393218,1376258,2162693,3538950,3866625,3932166,3997700,6094849,6160385,6225923,9895938,10092545,10420227,10485765,10551300,10616834,10682373,10747906,10813443,10878979,10944518,11141121,11206657,11272193,12320793,13172737,13238277,13369346,14221313,14745601,15204353,15335432,15466497,15597569,17825793,18284545,19333121,20381697,20447234,20512769,20709386,20774922,20840451,20971521,21430273,21692417,21954565,22347777,22413313,22609922,22740993,23199745,23265281,23658498,23789572,23855105,23986196,24051713,24117250,24182788,24248321,24313857,24379394,24444936,24510469,24576001,24641539,24772609,24838145],"status":[458755,1441799,1507335,1769473,1835009,1900545,1966081,4194308,4784134,4980742,5177350,5439494,9568269,9633805,11337731,11403271,12320772,13107204,15269890,15400962,15728644,19726348,20250637,21233666,21299203,21561345,21626881,21692417,21757953,23658497,23920647,24051714,24707082,24772610],"statuscode":[458754,1441793,1507329,11403274,12320770,15728641,21299211,24707076,24772613],"successful":[458753,1507329,24707073,24772609],"structure":[458753,1441793,1507329,2031617,2097153,3211265,3342337,4194305,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,8454145,8912897,8978433,9043969,11337729,11403265,12320769,12517377,13041665,13959169,14024705,15007745,15138817,15728641,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,18743297,18808833,18939905,19005441,19070977,19136513,21233665,21299201,21823490,21889026,23592962,23724034,24707074],"syntax":[655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468802,11534338,11599874,11665410,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18153473,18219009,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19267585,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22216705,22282241,22347777,22413313,22478849,22544385,22609921,22675457,22740993,22806529,22872065,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23789569,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24379393,24444929,24510465,24576001,24641537,24707073,24772609,24838145,24903681,24969217,25034753,25100289,25165825,25231361],"string":[655365,720901,786437,851973,917509,983045,1048581,1114117,1245189,1572869,1769473,1835009,1900545,1966081,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014661,3080196,3276804,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932162,3997697,4063233,4128769,4194305,4390915,4456449,4521989,5701638,5767180,6422534,6488078,6750214,6815750,7340042,7405577,7471115,7536650,7667721,7733259,7798794,7929863,7995401,8060936,8192007,8257545,8323080,8585225,8650770,8912903,8978438,9043981,9502730,9633798,9895941,10289157,10354693,10551302,11075592,11141127,11272198,11337735,11403269,11862022,11993095,12124166,12320769,12517379,12582916,12648450,12713986,12779522,12845058,12910594,12976131,13041667,13107201,13238273,13303811,13369345,13500417,13565953,13631489,14155777,14942209,15138817,15269889,16580614,16646150,17301510,17367047,17498118,17629190,17825799,18284550,18350086,18415622,18546694,18612230,18677767,19005446,19070983,19333127,19398663,19595271,19922950,19988486,20054022,20578310,20971526,21168134,21233670,21561345,21626881,21692417,21757953,21823491,22020099,22085638,22216706,22347777,22544385,22609921,22675457,22806529,22872069,23330817,23396357,23461892,23527425,23658500,23724037,23855105,23920643,23986177,24051713,24117249,24182785,24248321,24313857,24444930,24510465,24576004,24641538,24707074,25034755,25231361],"static":[655361,720897,786433,851969,917505,983041,1048577,1114113,1179651,1245185,1310723,1376257,1441795,1507331,1572865,1638403,4521987,4587523,6094851,6160387,6225923,6291459,6356995,7143427,8388611,10354691,11468803,11534339,11599875,11665411,11730947,11796483,11862019,11927555,11993091,12058627,12124163,18022403,18087939,18677763,20381699,21495809,21954561,22151169,23527425,24903681,24969217,25034753,25100289],"shared":[1179649,1310721,1441793,1507329,1638401,4521985,4587521,6094849,6160385,6225921,6291457,6356993,7143425,8388609,10354689,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,18022401,18087937,18677761,20381697],"stream":[1769473,1835010,1900545,1966081,2162693,2686978,2818051,2883585,4259845,4653057,4915202,5111809,5308417,6094849,6160387,6225922,7274497,11468801,11534337,11599874,11665409,12320772,13434883,13697025,13762562,13828097,15859713,16056321,16187393,16318465,21561346,21626884,21692418,21757953,21954565,22937603,23003137,23068676,23265282,23789571,24903685,25165825],"specified":[1769473,1835009,1900545,1966081,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014658,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4456449,7602177,8126465,8388609,12320769,12386305,21430273,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085634,22347777,22544385,22609921,22675457,22806529,23330817,23396354,23461889,23527425,23592961,23658497,23724033,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707073,24772610,25231361],"serves":[1769473,1835009,1900545,1966081,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3276801,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4456449,21561345,21626881,21692417,21757953,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23658497,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,25231361],"set":[2031617,2097155,5570561,5832705,5898241,5963777,7012354,12255233,14221314,14548993,14614529,14811137,17760260,17825798,18153477,18219012,19267589,20250628,20316164,21430273,21823489,21889027,22347778,23003137,23068673,23265281],"streaming":[2162694,3866627,6094850,6160386,6225922,9961473,10027009,10092545,12320774,12451841,13172739,13697025,13762562,13828097,15400961,15859713,16056321,16187393,16318465,20316161,21561346,21626883,21692418,21954566,22413313,22740993,24051713,24313859,24379393,24903681],"scenario":[2162691,6094849,6160385,6225921,21954563],"sends":[2162691,3604482,6094849,6160385,6225921,9764866,21954563,24051714],"single":[2162689,2752513,2818049,2883585,3866626,6094849,7208961,10158082,12320772,13172738,14221313,17825793,21757954,21954561,22020097,22347777,23003137,23068673,23265281,23789572,23986177,24313858],"sending":[2162689,6160385,21954561],"simple":[2162690,4325377,6291457,6356993,11730945,21954562,24969217],"starting":[2228226,6553602,22020098],"shallow":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"shutdownasync":[2228225,3538945,6619141,10813445,22020097,23986177],"setlogger":[2621441,7143430,22806529],"sets":[2621441,3473409,7143425,14680065,15269891,18219009,22806529,23134209,23920644],"severity":[3014662,3080198,7405569,7471105,7536641,7667713,7733249,7798785,7929857,7995393,8060929,8192001,8257537,8323073,12713986,12779522,12845058,12910594,23396358,23461894],"serializer":[3145729,8388615,8454149,15007746,18808838,23527425,23592962],"subsequent":[3473409,14548993,14614529,14811137,18153473,23003137,23068673,23265281,23920641],"serializationinfo":[3473409,23920641],"shutdown":[3538948,10420226,10813442,12320769,22806529,23986180],"serviced":[3538945,10813441,23986177],"starts":[3538945,10878977,23986177],"servercallcontext":[3604483,6029313,9699331,9764866,12320770,15400963,19791874,19857410,19922946,19988482,20054018,20119554,20185090,20250626,20316162,22413317,22740997,23134209,24051719,24379397,24838149],"servercredentials":[3670019,3932161,9830406,9895941,10551302,12320769,13238273,15466499,20381704,20512774,24117257,24444929,24641541],"serverservicedefinition":[3801092,3866627,9961479,10027015,10092551,10158087,10223625,10289154,10354696,10682374,10747910,12320772,13172737,24248329,24313862,24510468],"serverstreamingservermethod":[3866625,10092550,12320769,13172737,24313857,24379397],"serverportcollection":[3932163,10485763,10551298,10616834,12320769,13238274,20709382,24444935],"servicedefinitioncollection":[3997699,10682371,10747906,12320769,20774918,24510471],"service":[3997698,9502721,10289153,10354689,10682370,12320770,14745601,15204353,15335425,18415617,19595265,20774913,23199745,23855105,23986177,24248321,24510467,24772610],"sslcredentials":[4063235,11010054,11075591,11141126,12320769,13303813,15597571,20905986,20971522,22675457,24576010],"sslservercredentials":[4128771,11206662,11272198,12320769,13369348,15663107,21037058,21102594,21168130,24117249,24641545],"system":[4521985,5701633,5767170,5832705,5898241,6029314,6422530,6488066,6553601,6684677,6750210,6815747,7012354,7340034,7405574,7471116,7536646,7667718,7733260,7798790,7929862,7995404,8060934,8192006,8257548,8323078,8388622,8454146,8585224,8650760,8847364,8978434,9043970,9240580,9371651,9502722,9633793,9895938,10289153,10354689,10551298,10944513,11075586,11141121,11206657,11272195,11403265,11468807,11599882,11665412,11730956,11796481,11862018,11993090,12058625,12124162,12386305,19267586,21495809,21561345,21626881,21692417,21757953,21954561,22020097,22085633,22151169,22347777,22544385,22609921,22675457,22806529,22872065,23330817,23396354,23527425,23658497,23855105,23920642,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24772613,24903681,24969217,25034753,25100289,25231361],"sub":[4653057,4915201,5111809,5308417,5636097,5701633,5767169,6029313,6422529,6488065,6750209,6815745,6946817,7012353,7077889,7143425,7340033,7405569,7471105,7536641,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8192001,8257537,8323073,8454145,8519681,8585217,8650753,8716289,8847361,8978433,9043969,9240577,9371649,9437185,9502721,9568257,9633793,9830401,9895937,10289153,10682369,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11403265,11730945,11796481,11862017,12058625,12124161,12189697,22872065],"sealed":[4653057,4915201,5111809,5308417,7405569,7471105,7536641,7602177,7667713,7733249,7798785,8519681,8716289,8781825,8847361,9109505,9175041,9240577,9306113,9371649,10616833,10747905,18874369,19202049,19267586,19333121,19398657,19595265,19660801,21495809,21561346,21626882,21692418,21757954,21954561,22085634,22151169,23330818,23527425,23658498,24576002,24903681,24969217,25034753,25100289],"struct":[5636097,5701633,5767169,6029313,6094850,6160386,6225922,6291458,6356994,6881282,8978433,9043969,9961474,10027010,10092546,10158082,11468801,11534337,11599873,11665409,12517379,13041666,21823493,21889027,23592962,23724036,24707074],"sent":[6029313,12320773,15400961,20119553,23658501,23789571,24051713],"stringvalue":[6488069,14155777,17367045,22085633],"specific":[6750209,6815745,7864321,12648450,15269889,22020098,23396353,23920641],"secure":[6750210,6815745,9895937,10551297,12320769,12648449,22020097,22675457],"serialize":[8454145,13959169,16777217,21823489],"summary":[8519681,8585217,8650753,8716289,8781825,8847361,9109505,9175041,9240577,9306113,9371649,18874369,19202049,19267585,20447233,20512769,20578305,20643841],"servicename":[9502725,10289157,10354693,14745601,15204353,18415621,19595271,23199745,23855105],"send":[9764865,13697025,13762561,14024705,15400962,15859713,16056321,17039361,20185089,20250625,21561345,21626881,21889025,24051714],"servicedefinition":[10682374],"streamreader":[11468806,11534342],"streamwriter":[11599878,11665414],"stubs":[12255233,12320769,21495809,22347777],"servers":[12320769,22020097],"supported":[12320770,22151169,23789569,24772609],"situations":[12320769,22609921],"sense":[12320769,22609921],"supports":[12320769,14221313,17825793,22347777,23658497],"services":[12320769,15335426,20774918,23986179],"structures":[12320769],"serializing":[12320769,23592961],"sharing":[12320769,23134209],"simplify":[12451842,24903681,25034753],"started":[14221313,15335426,17760257,20709377,20774913,22347777,23986178],"served":[14221313,17825793,22347777],"security":[14352385,15466497,18022401,20381697,22675457,24117249],"stringmarshaller":[14942209,18677765,23527425],"source":[15269889,23920641],"stacktrace":[15269889,23920641],"stack":[15269889,23920641],"shutdowntask":[15335425,20840453,23986177],"signals":[15400961,19791873,24051713],"setting":[15400961,20316161,24051713],"success":[15728641,21299201,24707073,24772609],"sealedattribute":[21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22085633,22151169,23330817,23527425,23592961,23658497,23724033,24576001,24707073,24903681,24969217,25034753,25100289],"serverstreaming":[23789569],"simultaneously":[23789569],"space":[24772612],"successfully":[24772609],"sequencer":[24772609],"seeking":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_116.json b/doc/ref/csharp/html/fti/FTI_116.json
new file mode 100644
index 0000000000000000000000000000000000000000..5e6f03ef405e663f5dc8d99469d5d0602fd905ad
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_116.json
@@ -0,0 +1 @@
+{"topic":[1],"title":[65537],"type":[131073,196609,262145,327681,393217,458753,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,1703938,1769474,1835010,1900546,1966082,2031619,2097155,2162689,2228226,2293762,2359298,2424834,2490370,2555906,2621442,2686977,2752513,2818049,2883585,2949122,3014659,3080194,3145729,3211267,3276802,3342338,3407874,3473410,3538946,3604482,3670018,3735554,3801090,3866626,3932164,3997698,4063234,4128770,4194306,4259841,4325377,4456450,4521986,4587523,4718593,4784129,4849665,4980737,5046273,5177345,5242881,5373953,5439489,5505025,5570562,5636099,5701636,5767174,5832706,5898242,5963778,6029317,6094852,6160389,6225925,6291461,6356997,6422530,6488066,6553602,6619137,6684675,6750211,6815748,6881286,6946817,7012354,7143425,7208962,7274497,7340034,7405570,7471107,7536642,7602179,7667714,7733251,7798786,7864321,7929858,7995395,8060930,8126467,8192002,8257539,8323074,8388612,8454146,8519681,8585218,8650754,8781826,8847362,8912897,8978434,9043970,9109505,9175042,9240578,9306114,9371649,9502731,9568257,9633794,9699330,9764866,9895940,9961476,10027012,10092548,10158084,10223617,10289153,10354690,10420225,10485763,10551301,10616833,10682369,10747905,10813441,10944513,11075585,11141122,11206657,11272195,11337729,11403266,11468805,11534340,11599878,11665413,11730947,11796481,11862018,11927555,11993092,12058625,12124162,12189697,12320773,13238274,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155779,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745603,14811137,14876673,14942210,15007745,15073281,15138817,15204355,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432583,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18153473,18219009,18284545,18350081,18415617,18481159,18546689,18612225,18677762,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19267586,19333121,19398657,19464193,19529729,19595265,19660809,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21495811,21561351,21626887,21692422,21757958,21823495,21889028,21954562,22020099,22085637,22151170,22216706,22282241,22347779,22413319,22478849,22544387,22609923,22675459,22741000,22806531,22872068,22937604,23003140,23068676,23134210,23199748,23265283,23330819,23396357,23461891,23527427,23592965,23658499,23724035,23789569,23855112,23920643,23986179,24051715,24117251,24182787,24248323,24313859,24379400,24444933,24510467,24576003,24641539,24707075,24772609,24838151,24903682,24969218,25034753,25100290,25165825,25231363],"top":[131073,196609,262145,327681,393217,458753,524289,589825,1703937,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686978,2752513,2818050,2883586,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,21495809,21561346,21626882,21692418,21757954,21823491,21889027,21954561,22020099,22085635,22151169,22347779,22544388,22609921,22675459,22806530,22937603,23003138,23068675,23134209,23199745,23265283,23330819,23396354,23461889,23527426,23592963,23658500,23724035,23855107,23920644,23986179,24051714,24117251,24182788,24248321,24313858,24444929,24510465,24576003,24641539,24707076,24903681,24969217,25034753,25100289,25231364],"tracing":[196609,655361,12320769,22151169,22609921],"transports":[196609,786433,22151169],"target":[196609,1114113,6750214,14090242,14221313,17629190,17825793,22020098,22151169,22347777],"testing":[196609,1114113,14942209,18677761,22151169,23527425],"token":[1703938,3604481,4521986,4587521,5832705,6029313,7012353,9699329,12320771,14024706,14286849,15400961,16908289,17104897,17891329,19791873,21495810,21889026,22544385,22609923,24051714],"trequest":[1769475,1835011,2031620,2162693,2359297,3407875,3866636,4653058,4718594,4784130,4849666,4915202,4980738,5046274,5570568,5636106,5701642,5767178,6094866,6160402,6225938,6291474,6357010,6881298,9502727,9961492,10027028,10092564,10158100,12320776,12517387,13172748,13697027,13762563,13959171,15204355,15859720,15925250,15990786,16056328,16121858,16187394,16515074,16580610,16646146,16711682,16777224,16842754,19333122,19398658,19464200,19529730,19595266,19660802,21561352,21626888,21823505,21954565,22347777,22413324,22741004,23855113,24313868,24379404,24838156],"tresponse":[1769475,1835011,1900547,1966083,2031620,2162693,2359297,3407875,3866636,4653058,4718599,4784130,4849666,4915202,4980738,5046274,5111810,5177346,5242882,5308418,5373959,5439490,5505026,5570568,5636106,5701642,5767178,6094866,6160402,6225938,6291474,6357010,6881298,9502727,9961492,10027028,10092564,10158100,12320778,12517387,13172748,13697027,13762563,13828099,13893635,13959171,15204355,15859714,15925256,15990786,16056322,16121858,16187400,16252930,16318472,16384008,16449538,16515074,16580610,16646146,16711682,16777218,16842760,19333122,19398658,19464194,19529736,19595266,19660802,21561352,21626888,21692424,21757960,21823505,21954565,22347777,22413324,22741004,23855113,24313868,24379404,24838156],"terminate":[1769473,1835009,1900545,1966081,4653057,4915201,5111809,5308417,21561345,21626881,21692417,21757953],"throws":[1769474,1835010,1900546,1966082,4390918,4784129,4849665,4980737,5046273,5177345,5242881,5439489,5505025,11796481,11862017,11927553,11993089,12058625,12124161,13500418,13565954,13631490,15269889,21561346,21626882,21692418,21757954,23920641,25034758],"trailing":[1769473,1835009,1900545,1966081,4849665,5046273,5242881,5505025,21561345,21626881,21692417,21757953],"tostring":[1769473,1835009,1900545,1966081,2031617,2097153,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3211265,3276801,3342338,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194306,4456449,8912902,11337734,21561345,21626881,21692417,21757953,21823489,21889025,22020097,22085633,22347777,22544385,22609921,22675457,22806529,23330817,23396353,23592961,23658497,23724034,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24576001,24641537,24707074,25231361],"time":[2162689,2752513,2818049,2883585,6160385,7208961,14221313,17760257,21954561,22347777,23003137,23068673,23265281],"task":[2228227,3538946,6553607,6619141,6684678,7208965,7274501,9764870,10420230,10813446,11468813,11534341,11599877,11665413,15925254,15990790,16121862,16252934,16384006,16449542,20840454,22020099,22413317,22740997,23986178,24379397,24838149],"try":[2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"tasks":[2228225,2686977,6684673,11468803,22020097,22937601],"tolistasync":[2686977,4259841,11534343,22937601,24903681],"tokens":[4587521],"taskawaiter":[4718597,5373957],"threading":[5832705,6029313,11468803],"typename":[6094850,6160386,6225922,6291458,6356994,6881282,7602177,8126465,8388609,9961474,10027010,10092546,10158082,11468801,11534337,11599873,11665409,11927553,11993089,21561346,21626882,21692417,21757953,21823490,22413314,22740994,22937601,23003137,23068673,23265281,23592961,23855106,24379394,24838146],"true":[7012362,11272193,11599876,14286850,15138817,15663105,17891329,17956865,18939905,21037057,22544386,23724033,24641537],"typeparam":[7602177,8126465,8388609,11468801,11534337,11599873,11665409,11927553,11993089,23265281,23592961],"types":[12320770,23658497,23789569],"trailers":[12320769,15400961,20185089,23658497,24051713],"thrown":[12320769,23920641],"targetsite":[15269889,23920641],"termination":[15335425,20840449,23986177],"transientfailure":[22282241],"typically":[24772610],"transaction":[24772609],"transient":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_117.json b/doc/ref/csharp/html/fti/FTI_117.json
new file mode 100644
index 0000000000000000000000000000000000000000..d53c17bcd086c11a09f35ef4a15bcb68fdb6b863
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_117.json
@@ -0,0 +1 @@
+{"user":[196612,983042,1048578,15269889,22151172,23920641,24772609],"used":[196609,262145,1114113,1179649,1769473,1835009,1900545,1966081,2228225,2621441,3538945,3604481,4653057,4915201,5111809,5308417,5701633,6029314,6619137,7143425,8454146,9502722,9699329,10813441,11272193,12320770,13959170,14024706,14090241,14221314,14417921,14548994,14614530,14811138,15204354,16777217,16842753,16908289,17170433,17629185,17760257,17825793,18087937,18153474,19464193,19529729,21561345,21626881,21692417,21757953,21823490,21889026,22020098,22151169,22347778,22544385,22675457,22806530,23003138,23068674,23265283,23855106,23986177,24051713,24772610],"unused":[393217,1376257,9895937,10551297,24182785],"unless":[2228225,2818049,4259841,6553601,11272193,11599873,13434881,22020097,23068673,24903681],"unmanaged":[2686977,22937601],"unaryservermethod":[3866625,10158086,12320769,13172737,24313857,24838149],"utils":[4259841,4325377,4390913,11468805,11534340,11599878,11665413,11730949,11796482,11862018,11927555,11993091,12058626,12124162,12451841,13434881,13500417,13565953,13631489,21430273,24903683,24969219,25034755],"unit":[4653060,4718593,4784129,4849665,4915204,4980737,5046273,5111812,5177345,5242881,5308420,5373953,5439489,5505025,6619137,7077889,7143425,7274497,7405570,7471106,7536642,7602178,7667714,7733250,7798786,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8519682,8585217,8650753,8716292,8847362,8912898,9109506,9240578,9371650,9437185,9830401,10223617,10420225,10616834,10682369,10747906,10813441,10878978,11010049,11337730,11730945,11796481,11862017,12058625,12124161,22872065],"unsecure":[6750209,12648449,14352385,15466497,18022401,20381697,22020097,22675457,24117249],"unsigned":[8388610,8454146,8585217,8978433,18743298,18808834,19136514],"unqualified":[9502721,14745601,15204353,18350081,19398657,23199745,23855105],"using":[11206657,11272193,12320769,13369345,21954561,24641537],"unthenticity":[11272193],"usage":[11468801,11534337,11599873,11665409],"uses":[12255233,21430273],"users":[12320769,21954561],"utilities":[12320769,12451841,21430273,23527425],"unary":[12320769,23789569,24838145],"utility":[12451842,24969217,25034753],"uri":[14090241,15400961,17498113,20054017,22020097,24051713],"useful":[14942209,18677761,20447233,23527425],"underlying":[15400961,20316161,24051713,24772609],"unknown":[24772610],"unauthenticated":[24772610],"unimplemented":[24772609],"unavailable":[24772610],"unrecoverable":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_118.json b/doc/ref/csharp/html/fti/FTI_118.json
new file mode 100644
index 0000000000000000000000000000000000000000..934344f41fd6b98c57c9ebc4c8ed5b22d83042a2
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_118.json
@@ -0,0 +1 @@
+{"value":[393217,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376258,1441793,1507329,1572865,1638401,2031617,2097155,3932162,4521985,4587521,4718593,4784129,4849665,4980737,5046273,5177345,5242881,5373953,5439489,5505025,5570562,5832706,5898242,5963778,6094849,6160385,6225921,6291457,6356993,6422530,6488066,6553601,6619137,6684673,6881281,7208961,7274497,7602177,8126465,8388609,8650758,8781825,8912897,8978434,9043975,9109505,9175041,9306113,9699329,9764865,9895937,9961473,10027009,10092545,10158081,10223617,10354689,10420225,10485762,10551298,10616833,10747905,10813441,11337729,11468801,11534337,11599873,11665409,11927553,11993089,12582914,13041666,13238274,14155778,14548993,14614529,14811137,15138820,15269890,15400961,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235970,17301505,17367042,17432577,17498113,17563649,17629185,17694721,17760258,17825794,17891329,17956865,18022401,18087937,18153475,18219010,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939906,19005441,19070983,19136514,19202049,19267586,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250626,20316163,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21823490,21889028,22085636,22216707,22282241,22413313,22478849,22740993,23003137,23068673,23265281,23592961,23724039,23789569,23920642,24051713,24182785,24379393,24444930,24707073,24772610,24838145,25165825],"versioninfo":[524291,1572866,12320769,25100295],"version":[524289,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572866,1638401,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,12320769,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18153473,18219009,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19267585,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22216705,22282241,22347777,22413313,22478849,22544385,22609921,22675457,22740993,22806529,22872065,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23789569,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24379393,24444929,24510465,24576001,24641537,24707073,24772609,24838145,24903681,24969217,25034753,25100291,25165825,25231361],"val":[655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401],"valuetype":[2031619,2097155,3211267,3342339,4194307,21823491,21889027,23592963,23724035,24707075],"values":[2031617,2097155,5570561,5832705,5898241,5963777,15728641,21299201,21823489,21889027,24707073],"void":[4653058,4915202,5111810,5308418,7143426,7405570,7471106,7536642,7667714,7733250,7798786,7929858,7995394,8060930,8192002,8257538,8323074,8519682,8585218,8650754,8716290,8847362,9240578,9371650,10682370,10878978,11730946,11796482,11862018,12058626,12124162,17760257,17825793,18153473,18219009,19267585,20250625,20316161,22872066],"virtual":[4653057,4915201,5111809,5308417,7405569,7471105,7536641,7602177,7667713,7733249,7798785,8519681,8716289,8781825,8847361,8912897,9109505,9175041,9240577,9306113,9371649,10616833,10747905,11337729,18874369,19202049,19267585,19333121,19398657,19595265,19660801],"valuebytes":[8585222,8978437,15138817,19136517,23724033],"valued":[8978433,9043969],"variable":[11010049,13303809,24576001],"visual":[11468802,11534338,11599874,11665410],"various":[12451841,21430273],"valid":[24772610]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_119.json b/doc/ref/csharp/html/fti/FTI_119.json
new file mode 100644
index 0000000000000000000000000000000000000000..ee9112dc18a5acd73ee59ed432bac5d4d828c192
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_119.json
@@ -0,0 +1 @@
+{"writeoptions":[589827,1638407,4456451,6029324,12189702,12320769,14024705,14548993,14614529,14680065,14811137,15400961,15794179,17170443,18153484,18219020,20316172,21364738,21889025,23003137,23068673,23134209,23265281,24051713,25231369],"write":[589825,1638401,2752513,2818050,2883585,6029313,7208961,7274497,12189697,12320771,14024705,14548994,14614530,14680065,14811138,15400962,15794177,17170433,18153474,18219009,20316162,21364737,21889025,23003139,23068676,23134210,23265283,24051714,25165829,25231363],"withoptions":[2031617,5570566,21823489],"withcancellationtoken":[2097153,5832709,21889025],"withdeadline":[2097153,5898245,21889025],"withheaders":[2097153,5963781,21889025],"waits":[2228225,6619137,22020097],"waitforstatechangedasync":[2228225,6684679,22020097],"wide":[2621441,7143425,14417921,18087937,22806530],"writeasync":[2752513,2818049,2883585,7208965,23003137,23068673,23265281],"writes":[2752513,2818051,2883586,4259842,7208961,7274497,11599873,11665409,13434882,14548993,14614529,14811137,18153473,23003138,23068676,23265283,24903682],"writeallasync":[2818049,2883585,4259842,11599882,11665417,13434883,23068673,23265281,24903682],"warning":[3014660,3080196,7733260,7798795,8257546,8323081,12779525,12910597,23396356,23461892],"writeresponseheadersasync":[3604482,9764870,24051714],"written":[3604481,7208961,9764866,24051713],"writing":[3604481,9764865,24051713],"warmup":[4325377,11730945,24969217],"wish":[11206657,13369345,24641537],"warmupiterations":[11730950],"writeflags":[12189701,12320769,21364742,25165829],"wrappers":[12255233,21430273],"writable":[12320771,23003137,23068673,23265281],"work":[12451841,22282241,24903681],"whatsoever":[14352385,15466497,18022401,20381697,22675457,24117249],"wire":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_122.json b/doc/ref/csharp/html/fti/FTI_122.json
new file mode 100644
index 0000000000000000000000000000000000000000..6a0eef704ab61581f16383ab22bf472a621f145f
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_122.json
@@ -0,0 +1 @@
+{"zero":[9895937,10551297]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_97.json b/doc/ref/csharp/html/fti/FTI_97.json
new file mode 100644
index 0000000000000000000000000000000000000000..2a75124bdfa11828b33f9adeffd72d42b2ab1db7
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_97.json
@@ -0,0 +1 @@
+{"automatically":[1,9895937,10551297,20447233],"authority":[196609,720897,22151169],"allow":[196609,851969,15335425,20840449,22151169,23986177],"agent":[196612,983042,1048578,22151172],"added":[393217,1376257,24182785],"assembly":[655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18153473,18219009,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19267585,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020097,22085633,22151169,22216705,22282241,22347777,22413313,22478849,22544385,22609921,22675457,22740993,22806529,22872065,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396353,23461889,23527425,23592961,23658497,23724033,23789569,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24379393,24444929,24510465,24576001,24641537,24707073,24772609,24838145,24903681,24969217,25034753,25100289,25165825,25231361],"authinterceptors":[1703939,4521986,4587522,12255233,21495815],"access":[1703938,4521986,4587522,6094849,6160385,6225921,6291457,13697025,13762561,13828097,13893633,15990785,16121857,16252929,16449537,21495810,21561345,21626881,21692417,21757953],"authorization":[1703937,4521985,12255233,21495810],"auth":[1703937,4521988,4587524,12255235,21430275,21495813],"asyncclientstreamingcall":[1769475,2162689,4653058,4718594,4784130,4849666,6094858,12320769,13697027,15859714,15925250,15990786,21561351,21954561],"async":[1769473,1835009,1900545,1966081,2686977,4259841,4653057,4915201,5111809,5308417,11468801,13697025,13762562,13828097,15859713,16056321,16187393,16318465,21561346,21626883,21692418,21757953,22937601,24903681],"associated":[1769473,1835009,1900545,1966081,2686977,3014659,3080195,4653057,4915201,5111809,5308417,7471105,7602177,7733249,7864321,7995393,8126465,8257537,9568257,9633793,12320769,12713985,12779521,12845057,12910593,13107202,13959169,14221313,15269889,16515073,17694721,21561345,21626881,21692417,21757953,21823489,22347777,22937601,23396356,23461891,23920644],"allows":[1769473,1966081,2228226,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,4718593,5373953,6553601,12320770,15400961,20316161,21561345,21757953,22020098,22347777,22544385,22609922,22675457,22806529,23134209,23396353,23855105,23920641,23986177,24051714,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"awaiting":[1769473,1966081,4718593,5373953,15335425,20840449,21561345,21757953,23986177],"asyncduplexstreamingcall":[1835011,2162689,4915202,4980738,5046274,6160394,12320769,13762563,16056322,16121858,16187394,21626887,21954561],"asyncserverstreamingcall":[1900547,2162689,5111810,5177346,5242882,6225930,12320769,13828099,16252930,16318466,21692423,21954561],"asyncunarycall":[1966083,2162689,5308418,5373954,5439490,5505026,6291466,12320769,13893635,16384002,16449538,21757959,21954561],"asynchronously":[2162692,2752513,2818049,2883585,3604481,6094849,6160385,6225921,6291457,7208961,9764865,21954564,23003137,23068673,23265281,24051713],"active":[2228225,6619137,22020097],"application":[2621441,2686977,7143425,12386305,14417921,15269889,18087937,21430273,22806530,22937601,23920641],"action":[2686977,4259841,11468801,11730958,22937601,24903681],"asyncstreamextensions":[2686978,2818049,2883585,4259843,11468805,11534340,11599878,11665413,12451841,13434882,22937602,23068673,23265281,24903687],"add":[3276803,3932162,3997697,8519690,8585225,8650761,10485767,10551302,10682374,12976132,13238275,23658499,24444930,24510465],"addmethod":[3866628,9961478,10027014,10092550,10158086,13172741,24313860],"adds":[3866628,3932162,3997697,9961473,10027009,10092545,10158081,10485761,10551297,10682369,13172740,13238274,24313860,24444930,24510465],"argumentexception":[4390914,11796481,11862017,13500418,25034754],"argumentnullexception":[4390914,11927553,11993089,13565954,25034754],"accesstoken":[4521989],"abstract":[4653057,4915201,5111809,5308417,7208961,7274497,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8519681,8716289,8781825,8847361,8912897,9109505,9175041,9240577,9306113,9371649,10616833,10747905,11337729,18153473,18219009,18284545,18350081,18415617,18481153,18874369,19202049,19267585,19333121,19398657,19595265,19660801,21495809,21954561,22151169,22347778,22675458,23527425,24117250,24903681,24969217,25034753,25100289],"awaitable":[6094849,6291457],"asynchronous":[6160385,6225921,13697026,13762561,13828097,13893634,15925249,15990785,16121857,16252929,16384001,16449537,21561346,21626881,21692417,21757954],"address":[6815745,14090241,15400961,17498113,20054017,22020097,24051713,24772610],"array":[7405569,7471105,7536641,7667713,7733249,7798785,7929857,7995393,8060929,8192001,8257537,8323073,8388610,8454146,8585217,8847368,8978433,18743298,18808834,19136514],"arrayindex":[8847367],"ascii":[9043970,13041665,23724033],"allowed":[9043969],"autheticate":[11206657,13369345,24641537],"authenticate":[11272193],"asyncaction":[11468806],"authentication":[12255233,21430273,24772609],"apis":[12255233,21430273,24772609],"autogenerated":[12255233,12320769,21495809,24248321],"abstraction":[12320769,22020097],"accessible":[12320769,22609921],"arbitrary":[12320769,23789569,23986177],"additional":[15269889,23920641],"assigned":[15269889,23920641],"adding":[15335426,20709377,20774913,23986178],"authenticity":[15663105,21037057,24641537],"actually":[20447233],"abstractclassattribute":[21495809,21954561,22151169,22347777,22675457,23527425,24117249,24903681,24969217,25034753,25100289],"authuri":[22872069],"argument":[24772609],"arguments":[24772609],"alreadyexists":[24772609],"attempted":[24772610],"applied":[24772609],"aborted":[24772610],"aborts":[24772609]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_98.json b/doc/ref/csharp/html/fti/FTI_98.json
new file mode 100644
index 0000000000000000000000000000000000000000..aa09b59f12ae6087627362f0587f13204539748e
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_98.json
@@ -0,0 +1 @@
+{"binaryheadersuffix":[327681,1245189,23658497],"binary":[327681,1245185,8978434,9043969,13041665,15138818,18939905,19136513,23658497,23724035],"bound":[393217,1376257,20447233,24182785],"boundport":[393217,1376257,15532033,20447238,24182786],"blockingunarycall":[2162689,6356997,21954561],"blocking":[2162689,6356993,21954561],"byte":[3276801,8388622,8454152,8585224,8978437,12976129,13041665,18743300,18808836,19136516,23658497,23724033],"builder":[3801089,3866628,9961480,10027016,10092552,10158088,10223619,10289158,10354695,12320770,13172738,24248321,24313867],"bidirectional":[3866625,10027009,12320769,13172737,21626881,24313857],"build":[3866625,10223621,24313857],"boolean":[4259841,4390916,7012356,8781826,9306114,11272195,11599879,11796483,11862019,12058627,12124163,13369345,13434881,13500418,13631490,17891330,17956866,18939906,19202050,21037058,24641537,24903681,25034756],"benchmarkutil":[4325379,11730949,12451841,24969223],"benchmark":[4325377,11730945,24969217],"bool":[7012358,8781828,9306116,11272195,11599875,11796483,11862019,12058627,12124163,17891332,17956868,18939908,19202053,21037060],"bytes":[8978433],"belongs":[9502721,14745601,15204353,18415617,19595265,23199745,23855105,24772609],"basic":[11468802,11534338,11599874,11665410],"benchmarkiterations":[11730950],"based":[12255233,12320771,14745601,15204353,18284545,19333121,21430273,22282241,22478849,23199745,23855105,24772609],"buffer":[12320769,21954561,25165826],"base":[12320769,22347777],"backend":[12320770,22609922],"beginning":[12320770,14024705,17039361,21889025,23658498],"bindservice":[12320769,24248321],"buffers":[12320769,24248321],"bidi":[12320769,22740993],"backed":[15400961,20316161,24051713],"broken":[24772610],"backoff":[24772609],"bufferhint":[25165825],"buffered":[25165826]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_99.json b/doc/ref/csharp/html/fti/FTI_99.json
new file mode 100644
index 0000000000000000000000000000000000000000..a53458d4f37955dc62cad963d415e68d49f1cb3c
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_99.json
@@ -0,0 +1 @@
+{"create":[131073,3145729,8388616,10944513,12255233,14090241,17629185,21495809,22020097,23527425,23920641,23986177,24772609],"contains":[131073,3276801,5701633,5767169,8781833,12320769,21430273,23658497,23920641],"class":[131073,196609,262145,327681,393217,524289,589825,655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1572865,1638401,1703937,1769473,1835009,1900545,1966081,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2949121,3014657,3145729,3276801,3407873,3473411,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4259841,4325377,4390913,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,6094855,6160391,6225927,6291463,6356999,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881287,6946818,7012353,7077890,7143425,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,8388609,8519681,8585217,8650753,8716289,8781825,8847361,9109505,9175041,9240577,9306113,9371649,9437185,9502722,9568257,9633793,9699329,9764865,9830402,9895937,9961481,10027017,10092553,10158089,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11468804,11534340,11599876,11665412,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189698,12255233,12320772,12386305,12451841,12582913,12648449,12713985,12779521,12976129,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13697025,13762561,13828097,13893633,14090241,14155777,14221313,14286849,14352385,14417921,14876673,14942209,15073281,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15794177,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18546689,18612225,18677761,18874369,19202049,19267585,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21364737,21495813,21561349,21626885,21692421,21757957,21823489,21889025,21954566,22020101,22085637,22151173,22216705,22282241,22347783,22413318,22478849,22544389,22609925,22675462,22740998,22806533,22937601,23003137,23068673,23134209,23199745,23265281,23330821,23396357,23461889,23527429,23592961,23658501,23724033,23789569,23855110,23920647,23986181,24051717,24117254,24182789,24248325,24313862,24379398,24444933,24510469,24576005,24641541,24707073,24772609,24838150,24903685,24969221,25034757,25100293,25165825,25231366],"core":[131073,196609,262145,327681,393217,458753,524289,589825,655364,720900,786436,851972,917508,983044,1048580,1114116,1179652,1245188,1310724,1376260,1441796,1507332,1572868,1638404,1769473,1835009,1900545,1966081,2031617,2097153,2162689,2228225,2293761,2359297,2424833,2490369,2555905,2621441,2686977,2752513,2818049,2883585,2949121,3014657,3080193,3145729,3211265,3276801,3342337,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4063233,4128769,4194305,4259841,4325377,4390913,4456449,4653060,4718596,4784132,4849668,4915204,4980740,5046276,5111812,5177348,5242884,5308420,5373956,5439492,5505028,5570567,5636103,5701639,5767176,5832708,5898244,5963781,6029319,6094853,6160389,6225925,6291461,6356997,6422532,6488068,6553604,6619140,6684681,6750213,6815749,6881286,6946821,7012356,7077892,7143431,7208964,7274500,7340036,7405574,7471111,7536646,7602181,7667718,7733255,7798790,7864324,7929862,7995399,8060934,8126469,8192006,8257543,8323078,8388615,8454148,8519689,8585223,8650759,8716293,8781833,8847371,8912900,8978436,9043972,9109509,9175049,9240587,9306121,9371654,9437188,9502727,9568261,9633797,9699335,9764869,9830404,9895941,9961478,10027014,10092550,10158086,10223620,10289156,10354692,10420228,10485767,10551301,10616836,10682375,10747908,10813444,10878980,10944516,11010052,11075589,11141125,11206660,11272196,11337732,11403269,11468811,11534345,11599885,11665419,11730951,11796484,11862020,11927557,11993093,12058628,12124164,12189701,12320771,12386305,12451841,12517377,12582913,12648449,12713985,12779521,12845057,12910593,12976129,13041665,13107201,13172737,13238273,13303809,13369345,13434881,13500417,13565953,13631489,13697025,13762561,13828097,13893633,13959169,14024705,14090241,14155777,14221313,14286849,14352385,14417921,14483457,14548993,14614529,14680065,14745601,14811137,14876673,14942209,15007745,15073281,15138817,15204353,15269889,15335425,15400961,15466497,15532033,15597569,15663105,15728641,15794177,15859716,15925252,15990788,16056324,16121860,16187396,16252932,16318468,16384004,16449540,16515076,16580612,16646148,16711684,16777220,16842756,16908292,16973828,17039364,17104900,17170436,17235972,17301508,17367044,17432580,17498116,17563652,17629188,17694724,17760260,17825796,17891332,17956868,18022404,18087940,18153476,18219012,18284548,18350084,18415620,18481156,18546692,18612228,18677764,18743300,18808836,18874373,18939908,19005444,19070980,19136516,19202053,19267589,19333124,19398660,19464196,19529732,19595268,19660804,19726340,19791876,19857412,19922948,19988484,20054020,20119556,20185092,20250628,20316164,20381700,20447237,20512773,20578309,20643845,20709380,20774916,20840452,20905988,20971524,21037060,21102596,21168132,21233668,21299204,21364740,21430275,21561349,21626885,21692421,21757957,21823492,21889028,21954565,22020101,22085637,22151173,22216708,22282244,22347781,22413318,22478852,22544389,22609925,22675462,22740999,22806533,22872070,22937604,23003140,23068676,23134212,23199748,23265285,23330821,23396357,23461892,23527429,23592965,23658501,23724036,23789572,23855109,23920645,23986181,24051717,24117254,24182789,24248325,24313861,24379398,24444933,24510469,24576006,24641542,24707076,24772612,24838149,24903685,24969221,25034757,25100293,25165828,25231365],"channeloptions":[196611,655362,720898,786434,851970,917506,983042,1048578,1114114,12320769,22151175],"census":[196610,655366,22151170],"collection":[196609,655361,2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932162,3997698,4128769,4456449,10616833,10747905,12320771,15269889,15335426,20709377,20774913,22020097,22151169,22347777,22544385,22609921,22675457,22806529,23396353,23658497,23855105,23920642,23986179,24051713,24117249,24182785,24248321,24313857,24444931,24510467,24641537,25231361],"calls":[196609,720897,2162691,2228225,3538946,6094850,6160386,6225922,6291458,6356994,6619137,10420225,10813441,12320778,12451841,15400961,20316161,21561345,21626881,21692417,21889025,21954569,22020098,22151169,22609922,23986178,24051713,24903681],"concurrent":[196609,851969,22151169],"connection":[196609,851969,2228225,6553601,22020097,22151169],"channel":[196609,917505,2228233,5636108,5701644,5767180,6422529,6488065,6553605,6619140,6684677,6750220,6815753,6946827,10944513,12320779,12517379,12582914,12648456,13959170,14090245,14221314,14352385,16515084,17498114,17563651,17629187,17694732,18022401,21823493,22020121,22085636,22151170,22216706,22282246,22347778,22675458],"check":[196609,1114113,15663105,21037057,22151169,24641537,24772609],"contextpropagationoptions":[262147,1179655,2424835,7012357,9699334,12320769,14286851,17891330,17956866,22544392],"context":[262145,1179649,3604481,6029313,7012353,9699329,12320771,14024705,17104897,21889025,22413317,22544386,22609922,22740997,24051714,24379397,24838149],"containing":[327681,1310721,2686977,4259841,11075585,11141121,11534337,13303809,22937601,23658497,24576001,24903681],"choose":[393217,1376257,24182785],"contain":[393217,1376257,24182785],"cancelled":[458754,1441794,2228226,6553601,6684673,15400961,19791873,22020098,24051713,24707074,24772610],"currentversion":[524289,1572869,25100289],"current":[524289,1572865,1769475,1835011,1900547,1966083,2031617,2097153,2228228,2293763,2359300,2424836,2490372,2555908,2621444,2949123,3014660,3211265,3276803,3342338,3407876,3473412,3538948,3604485,3670020,3735556,3801092,3866628,3932164,3997700,4063235,4128772,4194306,4456452,8912897,9764865,11337729,12320769,14090241,14483457,15269891,17563649,21561347,21626883,21692419,21757955,21823489,21889025,22020101,22085635,22347780,22544388,22609924,22675460,22806532,22937601,23330819,23396356,23592961,23658499,23724034,23855108,23920647,23986180,24051717,24117252,24182788,24248324,24313860,24444932,24510468,24576003,24641540,24707074,25100290,25231364],"copy":[655361,720897,786433,851969,917505,983041,1048577,1114113,1179649,1245185,1310721,1376257,1441793,1507329,1572865,1638401,2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,4521985,4587521,4653057,4718593,4784129,4849665,4915201,4980737,5046273,5111809,5177345,5242881,5308417,5373953,5439489,5505025,5570561,5636097,5701633,5767169,5832705,5898241,5963777,6029313,6094849,6160385,6225921,6291457,6356993,6422529,6488065,6553601,6619137,6684673,6750209,6815745,6881281,6946817,7012353,7077889,7143425,7208961,7274497,7340033,7405569,7471105,7536641,7602177,7667713,7733249,7798785,7864321,7929857,7995393,8060929,8126465,8192001,8257537,8323073,8388609,8454145,8519681,8585217,8650753,8716289,8781825,8847361,8912897,8978433,9043969,9109505,9175041,9240577,9306113,9371649,9437185,9502721,9568257,9633793,9699329,9764865,9830401,9895937,9961473,10027009,10092545,10158081,10223617,10289153,10354689,10420225,10485761,10551297,10616833,10682369,10747905,10813441,10878977,10944513,11010049,11075585,11141121,11206657,11272193,11337729,11403265,11468801,11534337,11599873,11665409,11730945,11796481,11862017,11927553,11993089,12058625,12124161,12189697,15859713,15925249,15990785,16056321,16121857,16187393,16252929,16318465,16384001,16449537,16515073,16580609,16646145,16711681,16777217,16842753,16908289,16973825,17039361,17104897,17170433,17235969,17301505,17367041,17432577,17498113,17563649,17629185,17694721,17760257,17825793,17891329,17956865,18022401,18087937,18153473,18219009,18284545,18350081,18415617,18481153,18546689,18612225,18677761,18743297,18808833,18874369,18939905,19005441,19070977,19136513,19202049,19267585,19333121,19398657,19464193,19529729,19595265,19660801,19726337,19791873,19857409,19922945,19988481,20054017,20119553,20185089,20250625,20316161,20381697,20447233,20512769,20578305,20643841,20709377,20774913,20840449,20905985,20971521,21037057,21102593,21168129,21233665,21299201,21364737,21495809,21561345,21626881,21692417,21757953,21823489,21889025,21954561,22020098,22085633,22151169,22216705,22282241,22347778,22413313,22478849,22544386,22609922,22675458,22740993,22806530,22872065,22937601,23003137,23068673,23134209,23199745,23265281,23330817,23396354,23461889,23527425,23592961,23658497,23724033,23789569,23855106,23920642,23986178,24051714,24117250,24182786,24248322,24313858,24379393,24444930,24510466,24576001,24641538,24707073,24772609,24838145,24903681,24969217,25034753,25100289,25165825,25231362],"const":[655362,720898,786434,851970,917506,983042,1048578,1114114,1245186,1376258,1572866],"creates":[1703938,2228225,2359298,2424833,2490369,2555905,2621441,2686977,3014657,3145729,3407873,3473410,3538945,3604482,3670017,3735553,3801090,3866626,3932161,3997697,4128769,4259841,4456449,4521985,4587521,6029313,6422529,6488065,6750209,6815745,6881281,7012353,7340033,7864321,8388609,9568257,9633793,9699329,9895937,10223617,10289153,10354689,11010049,11075585,11141121,11206657,11272193,11403265,11534337,12582914,12648450,13107202,13303811,13369346,21495810,21889025,22020099,22085634,22347778,22544386,22609921,22675457,22806529,22937601,23330817,23396354,23527425,23855105,23920644,23986177,24051714,24117249,24182786,24248322,24313859,24444929,24510465,24576003,24641539,24707073,24903681,25231361],"credential":[1703937,4587527,14352385,15466497,18022401,20381697,21495809,22675457,24117249],"cleanup":[1769473,1835009,1900545,1966081,2228225,2359297,2424833,2490369,2555905,2621441,3014657,3407873,3473409,3538945,3604481,3670017,3735553,3801089,3866625,3932161,3997697,4128769,4456449,4653057,4915201,5111809,5308417,21561345,21626881,21692417,21757953,22020097,22347777,22544385,22609921,22675457,22806529,23396353,23855105,23920641,23986177,24051713,24117249,24182785,24248321,24313857,24444929,24510465,24641537,25231361],"call":[1769482,1835017,1900553,1966090,2162693,2228225,2359297,3604484,3932161,3997697,4653062,4784130,4849666,4915205,4980738,5046274,5111813,5177346,5242882,5308422,5439490,5505026,5636099,5701635,5767170,6029316,6094856,6160392,6225928,6291464,6356999,6553601,6881283,6946817,7012354,9568257,9633793,9699330,9764866,10485761,10682369,11468802,11534338,11599874,11665410,12320788,13238273,13697025,13893633,13959170,14024709,14221313,14286850,15269890,15400961,15925249,16384001,16515073,16711681,16908289,16973825,17039361,17104897,17170433,17760257,17891329,17956865,19726337,19791873,21561357,21626891,21692426,21757965,21823493,21889029,21954565,22020098,22347778,22413313,22544386,22609922,22740993,22872065,23658501,23920644,24051718,24248321,24379393,24444929,24510465,24772609,24838145],"completed":[1769473,1835009,1966081,4653057,4915201,5308417,21561345,21626881,21757953,24772609],"cancellation":[1769473,1835009,1900545,1966081,4653057,4915201,5111809,5308417,5832705,6029313,7012353,12320769,14286849,15400961,17891329,19791873,21561345,21626881,21692417,21757953,22544385,22609921,24051713],"callinvocationdetails":[2031620,5570569,5636103,5701639,5767175,6094853,6160389,6225925,6291461,6356997,6881285,12320769,12517384,13959171,16515074,16580610,16646146,16711682,16777218,16842754,21823501],"code":[2031617,2097153,3211265,3342337,4194305,11403265,12320769,12451841,15728641,21299201,21823489,21889025,23592961,23724033,24248321,24707074,25034753],"calloptions":[2097158,5570566,5636102,5701638,5767174,5832712,5898248,5963784,6029318,6881285,12320769,12517379,14024707,16711686,16908290,16973826,17039362,17104898,17170434,21823491,21889035],"cancellationtoken":[2097153,5832715,6029324,14024705,15400961,16908299,19791883,21889026,24051713],"client":[2162693,3604481,3866625,6094851,6160385,6225921,9764865,9961473,11010049,11075585,11141121,11206658,11272195,12255234,12320780,13172737,13303811,13369346,14221314,15400963,15597570,15663106,17694721,17760257,20119553,20185089,20250625,20905986,21037057,21168129,21430273,21495810,21561345,21823489,21889025,21954566,22020097,22347779,22413313,22675457,23068673,23658497,23789572,24051716,24313857,24576006,24641540,24772609],"completely":[2162689,6160385,21954561,25165825],"connectasync":[2228225,6553605,22020097],"connect":[2228225,6553601,22020097],"completes":[2228226,2818050,4259841,6553601,6684673,7274497,11599873,13434881,22020098,23068674,24903681],"case":[2228225,6553601,22020097],"cleans":[2228225,3538945,6619137,10813441,22020097,23986177],"channeloption":[2293763,6422534,6488070,6750214,6815750,10944517,12320771,12582916,12648450,14155783,17235971,17301507,17367043,17432585,22020098,22085645,22216706],"clientbase":[2359299,6881282,6946822,12255233,12320769,14221315,17694722,17760258,17825794,21495809,22347785],"createcall":[2359297,6881285,22347777],"contextpropagationtoken":[2490371,6029317,9699333,12320770,17104902,22544385,22609927],"credentials":[2555907,6750220,6815756,7077894,9895942,10551302,11010049,11075585,11141121,11206657,11272193,12320773,12648450,13303811,13369346,14352387,15532033,18022408,20512775,22020098,22675466,24117249,24182785,24576009,24641539,24772609],"completeasync":[2818049,7274501,23068673],"closes":[2818049,7274497,23068673],"called":[2818049,3604481,7274497,9764865,13959169,15400962,16646145,19922945,19988481,21823489,23068673,24051715],"calling":[2818049,7274497,23068673],"close":[2818049,4259841,11599873,12320769,13434881,23068674,24903681],"consolelogger":[3014659,7405572,7471109,7536644,7602179,7667716,7733253,7798788,7864325,12386305,12713986,12779522,23396360],"clear":[3276801,8716296,23658497],"copyto":[3276801,8847370,23658497],"cause":[3473409,23920641],"cancelling":[3538945,10420225,14024705,16908289,21889025,23986177],"complete":[3538946,10420225,10813441,11599880,23986178,24772609],"createpropagationtoken":[3604481,9699334,24051713],"child":[3604481,7012354,9699329,12320770,14286850,17891329,17956865,22544386,22609922,24051713],"createbuilder":[3801089,10354693,24248321],"clientstreamingservermethod":[3866625,9961478,12320769,13172737,22413317,24313857],"checkargument":[4390914,11796486,11862022,13500419,25034754],"condition":[4390916,11796487,11862023,12058631,12124167,13500418,13631490,24772609,25034756],"checknotnull":[4390914,11927559,11993095,13565955,25034754],"checkstate":[4390914,12058630,12124166,13631491,25034754],"constructor":[5636097,5701633,5767169,6029313,6422529,6488065,6750209,6815745,6946817,7012353,7077889,7340033,7864321,8454145,8978433,9043969,9437185,9502721,9568257,9633793,9830401,9895937,10289153,10944513,11010049,11075585,11141121,11206658,11272193,11403265,12189697,12517377,12582913,12648449,13041665,13107201,13303809,13369346,24641537],"channelstate":[6684679,12320769,17563654,22282245],"connects":[6750209,6815745,12648450,22020098],"collections":[6750209,6815745,10944513,11206657,11272193,11599877,11665412],"cal":[7012354,14286850,17891329,17956865,22544386],"customlogger":[7143430],"certificate":[7340034,11141121,12320769,14876673,15597570,15663105,18546689,20905986,21102593,23330819,24576002,24641537],"chain":[7340034,14876673,18546689,23330818],"certificatechain":[7340037,14876673,18546693,23330817],"console":[7864321,12386305,23396354],"char":[8388610,8454146,8585217,8978433,18743298,18808834,19136514],"characters":[9043969],"chosen":[9895937,10551297],"certificates":[11010049,11075585,11141121,11206658,11272194,13303810,13369345,15597569,15663105,20971521,21168129,24576003,24641538],"ctor":[11075585],"currently":[12255233,21430273,24772609],"consists":[12255233,12320769,21430273,24707073],"classes":[12255234,12320769,12386305,12451841,21495809],"created":[12255233,12320769,21495809,24248321],"concepts":[12320769,21430273],"clients":[12320769,21954561],"channels":[12320769,22020097],"connections":[12320769,22020097],"creating":[12320771,14352385,15466497,18022401,20381697,22020097,22085633,22675457,23527425,24117249],"compared":[12320769,22020097],"corresponds":[12320769,22085633],"contexts":[12320769,22609921],"creation":[12320769,22675457],"capability":[12320769,23068673],"connectivity":[12320769,14090241,17563649,22020097,22282241],"compressionlevel":[12320769,22478853],"compression":[12320770,22478854,25165825],"checking":[12451841,25034753],"custom":[14221313,17760257,22347777],"count":[15073281,18874376,23658497],"coded":[15269889,23920641],"caused":[15269889,23920641,24772609],"causes":[15269889,23920641],"convenience":[15400961,20316161,24051713],"constructors":[21823489,21889025,22020097,22085633,22347777,22544385,22675457,23330817,23396353,23592961,23658497,23724033,23855105,23920641,23986177,24117249,24182785,24313857,24576001,24641537,24707073,25231361],"connecting":[22282242],"clientstreaming":[23789569],"caller":[24772611],"converted":[24772609],"change":[24772609],"concurrency":[24772609],"corrected":[24772609],"corruption":[24772609],"completion":[25165825]}
\ No newline at end of file
diff --git a/doc/ref/csharp/html/fti/FTI_Files.json b/doc/ref/csharp/html/fti/FTI_Files.json
new file mode 100644
index 0000000000000000000000000000000000000000..7439f6f829f9d9a7113f4bbfe43b12861bb3c463
--- /dev/null
+++ b/doc/ref/csharp/html/fti/FTI_Files.json
@@ -0,0 +1 @@
+["gRPC C# - Redirect\u0000index.html\u000018","gRPC C# - Search\u0000search.html\u000012","RpcException Events\u0000html/Events_T_Grpc_Core_RpcException.htm\u000055","ChannelOptions Fields\u0000html/Fields_T_Grpc_Core_ChannelOptions.htm\u0000111","ContextPropagationOptions Fields\u0000html/Fields_T_Grpc_Core_ContextPropagationOptions.htm\u000039","Metadata Fields\u0000html/Fields_T_Grpc_Core_Metadata.htm\u000047","ServerPort Fields\u0000html/Fields_T_Grpc_Core_ServerPort.htm\u000060","Status Fields\u0000html/Fields_T_Grpc_Core_Status.htm\u000057","VersionInfo Fields\u0000html/Fields_T_Grpc_Core_VersionInfo.htm\u000032","WriteOptions Fields\u0000html/Fields_T_Grpc_Core_WriteOptions.htm\u000032","ChannelOptions.Census Field\u0000html/F_Grpc_Core_ChannelOptions_Census.htm\u000082","ChannelOptions.DefaultAuthority Field\u0000html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm\u000080","ChannelOptions.Http2InitialSequenceNumber Field\u0000html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm\u000081","ChannelOptions.MaxConcurrentStreams Field\u0000html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm\u000087","ChannelOptions.MaxMessageLength Field\u0000html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm\u000083","ChannelOptions.PrimaryUserAgentString Field\u0000html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm\u000088","ChannelOptions.SecondaryUserAgentString Field\u0000html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm\u000088","ChannelOptions.SslTargetNameOverride Field\u0000html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm\u000087","ContextPropagationOptions.Default Field\u0000html/F_Grpc_Core_ContextPropagationOptions_Default.htm\u000088","Metadata.BinaryHeaderSuffix Field\u0000html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm\u000083","Metadata.Empty Field\u0000html/F_Grpc_Core_Metadata_Empty.htm\u000087","ServerPort.PickUnused Field\u0000html/F_Grpc_Core_ServerPort_PickUnused.htm\u0000105","Status.DefaultCancelled Field\u0000html/F_Grpc_Core_Status_DefaultCancelled.htm\u000089","Status.DefaultSuccess Field\u0000html/F_Grpc_Core_Status_DefaultSuccess.htm\u000089","VersionInfo.CurrentVersion Field\u0000html/F_Grpc_Core_VersionInfo_CurrentVersion.htm\u000079","WriteOptions.Default Field\u0000html/F_Grpc_Core_WriteOptions_Default.htm\u000081","AuthInterceptors Methods\u0000html/Methods_T_Grpc_Auth_AuthInterceptors.htm\u000065","AsyncClientStreamingCall(TRequest, TResponse) Methods\u0000html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm\u0000215","AsyncDuplexStreamingCall(TRequest, TResponse) Methods\u0000html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm\u0000209","AsyncServerStreamingCall(TResponse) Methods\u0000html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm\u0000196","AsyncUnaryCall(TResponse) Methods\u0000html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm\u0000208","CallInvocationDetails(TRequest, TResponse) Methods\u0000html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm\u0000132","CallOptions Methods\u0000html/Methods_T_Grpc_Core_CallOptions.htm\u0000162","Calls Methods\u0000html/Methods_T_Grpc_Core_Calls.htm\u0000160","Channel Methods\u0000html/Methods_T_Grpc_Core_Channel.htm\u0000258","ChannelOption Methods\u0000html/Methods_T_Grpc_Core_ChannelOption.htm\u000095","ClientBase Methods\u0000html/Methods_T_Grpc_Core_ClientBase.htm\u0000154","ContextPropagationOptions Methods\u0000html/Methods_T_Grpc_Core_ContextPropagationOptions.htm\u0000142","ContextPropagationToken Methods\u0000html/Methods_T_Grpc_Core_ContextPropagationToken.htm\u0000142","Credentials Methods\u0000html/Methods_T_Grpc_Core_Credentials.htm\u0000142","GrpcEnvironment Methods\u0000html/Methods_T_Grpc_Core_GrpcEnvironment.htm\u0000155","IAsyncStreamReader(T) Methods\u0000html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm\u0000113","IAsyncStreamWriter(T) Methods\u0000html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm\u000047","IClientStreamWriter(T) Methods\u0000html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm\u0000113","IServerStreamWriter(T) Methods\u0000html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm\u000079","KeyCertificatePair Methods\u0000html/Methods_T_Grpc_Core_KeyCertificatePair.htm\u000095","ConsoleLogger Methods\u0000html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm\u0000234","ILogger Methods\u0000html/Methods_T_Grpc_Core_Logging_ILogger.htm\u0000119","Marshallers Methods\u0000html/Methods_T_Grpc_Core_Marshallers.htm\u000038","Marshaller(T) Methods\u0000html/Methods_T_Grpc_Core_Marshaller_1.htm\u0000100","Metadata Methods\u0000html/Methods_T_Grpc_Core_Metadata.htm\u0000118","Entry Methods\u0000html/Methods_T_Grpc_Core_Metadata_Entry.htm\u000099","Method(TRequest, TResponse) Methods\u0000html/Methods_T_Grpc_Core_Method_2.htm\u0000153","RpcException Methods\u0000html/Methods_T_Grpc_Core_RpcException.htm\u0000199","Server Methods\u0000html/Methods_T_Grpc_Core_Server.htm\u0000198","ServerCallContext Methods\u0000html/Methods_T_Grpc_Core_ServerCallContext.htm\u0000211","ServerCredentials Methods\u0000html/Methods_T_Grpc_Core_ServerCredentials.htm\u0000142","ServerPort Methods\u0000html/Methods_T_Grpc_Core_ServerPort.htm\u0000142","ServerServiceDefinition Methods\u0000html/Methods_T_Grpc_Core_ServerServiceDefinition.htm\u0000152","Builder Methods\u0000html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm\u0000261","ServerPortCollection Methods\u0000html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm\u0000215","ServiceDefinitionCollection Methods\u0000html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm\u0000181","SslCredentials Methods\u0000html/Methods_T_Grpc_Core_SslCredentials.htm\u000095","SslServerCredentials Methods\u0000html/Methods_T_Grpc_Core_SslServerCredentials.htm\u0000142","Status Methods\u0000html/Methods_T_Grpc_Core_Status.htm\u000096","AsyncStreamExtensions Methods\u0000html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm\u0000113","BenchmarkUtil Methods\u0000html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm\u000038","Preconditions Methods\u0000html/Methods_T_Grpc_Core_Utils_Preconditions.htm\u000096","WriteOptions Methods\u0000html/Methods_T_Grpc_Core_WriteOptions.htm\u0000142","AuthInterceptors.FromAccessToken Method\u0000html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm\u0000129","AuthInterceptors.FromCredential Method\u0000html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm\u0000145","AsyncClientStreamingCall(TRequest, TResponse).Dispose Method\u0000html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm\u0000161","AsyncClientStreamingCall(TRequest, TResponse).GetAwaiter Method\u0000html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm\u0000108","AsyncClientStreamingCall(TRequest, TResponse).GetStatus Method\u0000html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm\u0000101","AsyncClientStreamingCall(TRequest, TResponse).GetTrailers Method\u0000html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm\u0000104","AsyncDuplexStreamingCall(TRequest, TResponse).Dispose Method\u0000html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm\u0000162","AsyncDuplexStreamingCall(TRequest, TResponse).GetStatus Method\u0000html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm\u0000101","AsyncDuplexStreamingCall(TRequest, TResponse).GetTrailers Method\u0000html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm\u0000104","AsyncServerStreamingCall(TResponse).Dispose Method\u0000html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm\u0000151","AsyncServerStreamingCall(TResponse).GetStatus Method\u0000html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm\u000096","AsyncServerStreamingCall(TResponse).GetTrailers Method\u0000html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm\u000099","AsyncUnaryCall(TResponse).Dispose Method\u0000html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm\u0000156","AsyncUnaryCall(TResponse).GetAwaiter Method\u0000html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm\u0000103","AsyncUnaryCall(TResponse).GetStatus Method\u0000html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm\u000096","AsyncUnaryCall(TResponse).GetTrailers Method\u0000html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm\u000099","CallInvocationDetails(TRequest, TResponse).WithOptions Method\u0000html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm\u0000186","CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)\u0000html/M_Grpc_Core_CallInvocationDetails_2__ctor.htm\u0000221","CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)\u0000html/M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm\u0000265","CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)\u0000html/M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm\u0000317","CallOptions.WithCancellationToken Method\u0000html/M_Grpc_Core_CallOptions_WithCancellationToken.htm\u0000127","CallOptions.WithDeadline Method\u0000html/M_Grpc_Core_CallOptions_WithDeadline.htm\u0000125","CallOptions.WithHeaders Method\u0000html/M_Grpc_Core_CallOptions_WithHeaders.htm\u0000128","CallOptions Constructor\u0000html/M_Grpc_Core_CallOptions__ctor.htm\u0000397","Calls.AsyncClientStreamingCall(TRequest, TResponse) Method\u0000html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm\u0000283","Calls.AsyncDuplexStreamingCall(TRequest, TResponse) Method\u0000html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm\u0000305","Calls.AsyncServerStreamingCall(TRequest, TResponse) Method\u0000html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm\u0000297","Calls.AsyncUnaryCall(TRequest, TResponse) Method\u0000html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm\u0000278","Calls.BlockingUnaryCall(TRequest, TResponse) Method\u0000html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm\u0000258","ChannelOption Constructor (String, Int32)\u0000html/M_Grpc_Core_ChannelOption__ctor.htm\u0000137","ChannelOption Constructor (String, String)\u0000html/M_Grpc_Core_ChannelOption__ctor_1.htm\u0000139","Channel.ConnectAsync Method\u0000html/M_Grpc_Core_Channel_ConnectAsync.htm\u0000229","Channel.ShutdownAsync Method\u0000html/M_Grpc_Core_Channel_ShutdownAsync.htm\u0000102","Channel.WaitForStateChangedAsync Method\u0000html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm\u0000266","Channel Constructor (String, Credentials, IEnumerable(ChannelOption))\u0000html/M_Grpc_Core_Channel__ctor.htm\u0000252","Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))\u0000html/M_Grpc_Core_Channel__ctor_1.htm\u0000270","ClientBase.CreateCall(TRequest, TResponse) Method\u0000html/M_Grpc_Core_ClientBase_CreateCall__2.htm\u0000283","ClientBase Constructor\u0000html/M_Grpc_Core_ClientBase__ctor.htm\u0000110","ContextPropagationOptions Constructor\u0000html/M_Grpc_Core_ContextPropagationOptions__ctor.htm\u0000205","Credentials Constructor\u0000html/M_Grpc_Core_Credentials__ctor.htm\u000076","GrpcEnvironment.SetLogger Method\u0000html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm\u0000139","IAsyncStreamWriter(T).WriteAsync Method\u0000html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm\u0000125","IClientStreamWriter(T).CompleteAsync Method\u0000html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm\u0000101","KeyCertificatePair Constructor\u0000html/M_Grpc_Core_KeyCertificatePair__ctor.htm\u0000139","ConsoleLogger.Debug Method\u0000html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm\u0000238","ConsoleLogger.Error Method (Exception, String, Object[])\u0000html/M_Grpc_Core_Logging_ConsoleLogger_Error.htm\u0000320","ConsoleLogger.Error Method (String, Object[])\u0000html/M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm\u0000246","ConsoleLogger.ForType(T) Method\u0000html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm\u0000147","ConsoleLogger.Info Method\u0000html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm\u0000238","ConsoleLogger.Warning Method (Exception, String, Object[])\u0000html/M_Grpc_Core_Logging_ConsoleLogger_Warning.htm\u0000320","ConsoleLogger.Warning Method (String, Object[])\u0000html/M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm\u0000246","ConsoleLogger Constructor\u0000html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm\u000081","ILogger.Debug Method\u0000html/M_Grpc_Core_Logging_ILogger_Debug.htm\u0000202","ILogger.Error Method (Exception, String, Object[])\u0000html/M_Grpc_Core_Logging_ILogger_Error.htm\u0000276","ILogger.Error Method (String, Object[])\u0000html/M_Grpc_Core_Logging_ILogger_Error_1.htm\u0000210","ILogger.ForType(T) Method\u0000html/M_Grpc_Core_Logging_ILogger_ForType__1.htm\u0000127","ILogger.Info Method\u0000html/M_Grpc_Core_Logging_ILogger_Info.htm\u0000202","ILogger.Warning Method (Exception, String, Object[])\u0000html/M_Grpc_Core_Logging_ILogger_Warning.htm\u0000276","ILogger.Warning Method (String, Object[])\u0000html/M_Grpc_Core_Logging_ILogger_Warning_1.htm\u0000210","Marshallers.Create(T) Method\u0000html/M_Grpc_Core_Marshallers_Create__1.htm\u0000390","Marshaller(T) Constructor\u0000html/M_Grpc_Core_Marshaller_1__ctor.htm\u0000229","Metadata.Add Method (Metadata.Entry)\u0000html/M_Grpc_Core_Metadata_Add.htm\u0000172","Metadata.Add Method (String, Byte[])\u0000html/M_Grpc_Core_Metadata_Add_1.htm\u0000220","Metadata.Add Method (String, String)\u0000html/M_Grpc_Core_Metadata_Add_2.htm\u0000199","Metadata.Clear Method\u0000html/M_Grpc_Core_Metadata_Clear.htm\u0000102","Metadata.Contains Method\u0000html/M_Grpc_Core_Metadata_Contains.htm\u0000173","Metadata.CopyTo Method\u0000html/M_Grpc_Core_Metadata_CopyTo.htm\u0000254","Metadata.Entry.ToString Method\u0000html/M_Grpc_Core_Metadata_Entry_ToString.htm\u0000107","Metadata.Entry Constructor (String, Byte[])\u0000html/M_Grpc_Core_Metadata_Entry__ctor.htm\u0000174","Metadata.Entry Constructor (String, String)\u0000html/M_Grpc_Core_Metadata_Entry__ctor_1.htm\u0000165","Metadata.GetEnumerator Method\u0000html/M_Grpc_Core_Metadata_GetEnumerator.htm\u0000143","Metadata.IndexOf Method\u0000html/M_Grpc_Core_Metadata_IndexOf.htm\u0000173","Metadata.Insert Method\u0000html/M_Grpc_Core_Metadata_Insert.htm\u0000229","Metadata.Remove Method\u0000html/M_Grpc_Core_Metadata_Remove.htm\u0000173","Metadata.RemoveAt Method\u0000html/M_Grpc_Core_Metadata_RemoveAt.htm\u0000155","Metadata Constructor\u0000html/M_Grpc_Core_Metadata__ctor.htm\u000076","Method(TRequest, TResponse) Constructor\u0000html/M_Grpc_Core_Method_2__ctor.htm\u0000270","RpcException Constructor (Status)\u0000html/M_Grpc_Core_RpcException__ctor.htm\u0000111","RpcException Constructor (Status, String)\u0000html/M_Grpc_Core_RpcException__ctor_1.htm\u0000145","ServerCallContext.CreatePropagationToken Method\u0000html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm\u0000177","ServerCallContext.WriteResponseHeadersAsync Method\u0000html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm\u0000174","ServerCredentials Constructor\u0000html/M_Grpc_Core_ServerCredentials__ctor.htm\u000076","ServerPort Constructor\u0000html/M_Grpc_Core_ServerPort__ctor.htm\u0000189","ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))\u0000html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm\u0000310","ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))\u0000html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm\u0000310","ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))\u0000html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm\u0000310","ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))\u0000html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm\u0000314","ServerServiceDefinition.Builder.Build Method\u0000html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm\u000095","ServerServiceDefinition.Builder Constructor\u0000html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm\u0000105","ServerServiceDefinition.CreateBuilder Method\u0000html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm\u0000131","Server.KillAsync Method\u0000html/M_Grpc_Core_Server_KillAsync.htm\u0000102","Server.ServerPortCollection.Add Method (ServerPort)\u0000html/M_Grpc_Core_Server_ServerPortCollection_Add.htm\u0000168","Server.ServerPortCollection.Add Method (String, Int32, ServerCredentials)\u0000html/M_Grpc_Core_Server_ServerPortCollection_Add_1.htm\u0000212","Server.ServerPortCollection.GetEnumerator Method\u0000html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm\u0000131","Server.ServiceDefinitionCollection.Add Method\u0000html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm\u0000153","Server.ServiceDefinitionCollection.GetEnumerator Method\u0000html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm\u0000131","Server.ShutdownAsync Method\u0000html/M_Grpc_Core_Server_ShutdownAsync.htm\u0000109","Server.Start Method\u0000html/M_Grpc_Core_Server_Start.htm\u000076","Server Constructor\u0000html/M_Grpc_Core_Server__ctor.htm\u0000155","SslCredentials Constructor\u0000html/M_Grpc_Core_SslCredentials__ctor.htm\u0000103","SslCredentials Constructor (String)\u0000html/M_Grpc_Core_SslCredentials__ctor_1.htm\u0000135","SslCredentials Constructor (String, KeyCertificatePair)\u0000html/M_Grpc_Core_SslCredentials__ctor_2.htm\u0000145","SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))\u0000html/M_Grpc_Core_SslServerCredentials__ctor.htm\u0000152","SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)\u0000html/M_Grpc_Core_SslServerCredentials__ctor_1.htm\u0000213","Status.ToString Method\u0000html/M_Grpc_Core_Status_ToString.htm\u0000104","Status Constructor\u0000html/M_Grpc_Core_Status__ctor.htm\u0000130","AsyncStreamExtensions.ForEachAsync(T) Method\u0000html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm\u0000440","AsyncStreamExtensions.ToListAsync(T) Method\u0000html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm\u0000358","AsyncStreamExtensions.WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)\u0000html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm\u0000541","AsyncStreamExtensions.WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))\u0000html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm\u0000428","BenchmarkUtil.RunBenchmark Method\u0000html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm\u0000243","Preconditions.CheckArgument Method (Boolean)\u0000html/M_Grpc_Core_Utils_Preconditions_CheckArgument.htm\u0000115","Preconditions.CheckArgument Method (Boolean, String)\u0000html/M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm\u0000150","Preconditions.CheckNotNull(T) Method (T)\u0000html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm\u0000169","Preconditions.CheckNotNull(T) Method (T, String)\u0000html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm\u0000202","Preconditions.CheckState Method (Boolean)\u0000html/M_Grpc_Core_Utils_Preconditions_CheckState.htm\u0000115","Preconditions.CheckState Method (Boolean, String)\u0000html/M_Grpc_Core_Utils_Preconditions_CheckState_1.htm\u0000150","WriteOptions Constructor\u0000html/M_Grpc_Core_WriteOptions__ctor.htm\u0000130","Grpc.Auth Namespace\u0000html/N_Grpc_Auth.htm\u000066","Grpc.Core Namespace\u0000html/N_Grpc_Core.htm\u0000823","Grpc.Core.Logging Namespace\u0000html/N_Grpc_Core_Logging.htm\u000039","Grpc.Core.Utils Namespace\u0000html/N_Grpc_Core_Utils.htm\u000048","CallInvocationDetails(TRequest, TResponse) Constructor\u0000html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm\u0000116","ChannelOption Constructor\u0000html/Overload_Grpc_Core_ChannelOption__ctor.htm\u000048","Channel Constructor\u0000html/Overload_Grpc_Core_Channel__ctor.htm\u000079","ConsoleLogger.Error Method\u0000html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm\u000054","ConsoleLogger.Warning Method\u0000html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm\u000054","ILogger.Error Method\u0000html/Overload_Grpc_Core_Logging_ILogger_Error.htm\u000054","ILogger.Warning Method\u0000html/Overload_Grpc_Core_Logging_ILogger_Warning.htm\u000054","Metadata.Add Method\u0000html/Overload_Grpc_Core_Metadata_Add.htm\u000036","Entry Constructor\u0000html/Overload_Grpc_Core_Metadata_Entry__ctor.htm\u000062","RpcException Constructor\u0000html/Overload_Grpc_Core_RpcException__ctor.htm\u000048","Builder.AddMethod Method\u0000html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm\u0000130","ServerPortCollection.Add Method\u0000html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm\u000086","SslCredentials Constructor\u0000html/Overload_Grpc_Core_SslCredentials__ctor.htm\u000082","SslServerCredentials Constructor\u0000html/Overload_Grpc_Core_SslServerCredentials__ctor.htm\u000064","AsyncStreamExtensions.WriteAllAsync Method\u0000html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm\u000076","Preconditions.CheckArgument Method\u0000html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm\u000047","Preconditions.CheckNotNull Method\u0000html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm\u000048","Preconditions.CheckState Method\u0000html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm\u000047","AsyncClientStreamingCall(TRequest, TResponse) Properties\u0000html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm\u000058","AsyncDuplexStreamingCall(TRequest, TResponse) Properties\u0000html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm\u000061","AsyncServerStreamingCall(TResponse) Properties\u0000html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm\u000046","AsyncUnaryCall(TResponse) Properties\u0000html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm\u000043","CallInvocationDetails(TRequest, TResponse) Properties\u0000html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm\u000083","CallOptions Properties\u0000html/Properties_T_Grpc_Core_CallOptions.htm\u000072","Channel Properties\u0000html/Properties_T_Grpc_Core_Channel.htm\u000057","ChannelOption Properties\u0000html/Properties_T_Grpc_Core_ChannelOption.htm\u000063","ClientBase Properties\u0000html/Properties_T_Grpc_Core_ClientBase.htm\u0000108","ContextPropagationOptions Properties\u0000html/Properties_T_Grpc_Core_ContextPropagationOptions.htm\u000056","Credentials Properties\u0000html/Properties_T_Grpc_Core_Credentials.htm\u000049","GrpcEnvironment Properties\u0000html/Properties_T_Grpc_Core_GrpcEnvironment.htm\u000036","IAsyncStreamReader(T) Properties\u0000html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm\u000040","IAsyncStreamWriter(T) Properties\u0000html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm\u000064","IClientStreamWriter(T) Properties\u0000html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm\u000072","IHasWriteOptions Properties\u0000html/Properties_T_Grpc_Core_IHasWriteOptions.htm\u000035","IMethod Properties\u0000html/Properties_T_Grpc_Core_IMethod.htm\u000080","IServerStreamWriter(T) Properties\u0000html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm\u000072","KeyCertificatePair Properties\u0000html/Properties_T_Grpc_Core_KeyCertificatePair.htm\u000039","Marshallers Properties\u0000html/Properties_T_Grpc_Core_Marshallers.htm\u000041","Marshaller(T) Properties\u0000html/Properties_T_Grpc_Core_Marshaller_1.htm\u000043","Metadata Properties\u0000html/Properties_T_Grpc_Core_Metadata.htm\u000030","Entry Properties\u0000html/Properties_T_Grpc_Core_Metadata_Entry.htm\u000068","Method(TRequest, TResponse) Properties\u0000html/Properties_T_Grpc_Core_Method_2.htm\u0000109","RpcException Properties\u0000html/Properties_T_Grpc_Core_RpcException.htm\u0000203","Server Properties\u0000html/Properties_T_Grpc_Core_Server.htm\u000087","ServerCallContext Properties\u0000html/Properties_T_Grpc_Core_ServerCallContext.htm\u0000135","ServerCredentials Properties\u0000html/Properties_T_Grpc_Core_ServerCredentials.htm\u000050","ServerPort Properties\u0000html/Properties_T_Grpc_Core_ServerPort.htm\u000031","SslCredentials Properties\u0000html/Properties_T_Grpc_Core_SslCredentials.htm\u000056","SslServerCredentials Properties\u0000html/Properties_T_Grpc_Core_SslServerCredentials.htm\u000052","Status Properties\u0000html/Properties_T_Grpc_Core_Status.htm\u000050","WriteOptions Properties\u0000html/Properties_T_Grpc_Core_WriteOptions.htm\u000033","AsyncClientStreamingCall(TRequest, TResponse).RequestStream Property\u0000html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm\u0000126","AsyncClientStreamingCall(TRequest, TResponse).ResponseAsync Property\u0000html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm\u0000123","AsyncClientStreamingCall(TRequest, TResponse).ResponseHeadersAsync Property\u0000html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm\u0000135","AsyncDuplexStreamingCall(TRequest, TResponse).RequestStream Property\u0000html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm\u0000126","AsyncDuplexStreamingCall(TRequest, TResponse).ResponseHeadersAsync Property\u0000html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm\u0000135","AsyncDuplexStreamingCall(TRequest, TResponse).ResponseStream Property\u0000html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm\u0000126","AsyncServerStreamingCall(TResponse).ResponseHeadersAsync Property\u0000html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm\u0000130","AsyncServerStreamingCall(TResponse).ResponseStream Property\u0000html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm\u0000121","AsyncUnaryCall(TResponse).ResponseAsync Property\u0000html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm\u0000118","AsyncUnaryCall(TResponse).ResponseHeadersAsync Property\u0000html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm\u0000130","CallInvocationDetails(TRequest, TResponse).Channel Property\u0000html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm\u0000109","CallInvocationDetails(TRequest, TResponse).Host Property\u0000html/P_Grpc_Core_CallInvocationDetails_2_Host.htm\u0000107","CallInvocationDetails(TRequest, TResponse).Method Property\u0000html/P_Grpc_Core_CallInvocationDetails_2_Method.htm\u0000110","CallInvocationDetails(TRequest, TResponse).Options Property\u0000html/P_Grpc_Core_CallInvocationDetails_2_Options.htm\u0000103","CallInvocationDetails(TRequest, TResponse).RequestMarshaller Property\u0000html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm\u0000124","CallInvocationDetails(TRequest, TResponse).ResponseMarshaller Property\u0000html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm\u0000124","CallOptions.CancellationToken Property\u0000html/P_Grpc_Core_CallOptions_CancellationToken.htm\u0000101","CallOptions.Deadline Property\u0000html/P_Grpc_Core_CallOptions_Deadline.htm\u0000121","CallOptions.Headers Property\u0000html/P_Grpc_Core_CallOptions_Headers.htm\u0000105","CallOptions.PropagationToken Property\u0000html/P_Grpc_Core_CallOptions_PropagationToken.htm\u0000102","CallOptions.WriteOptions Property\u0000html/P_Grpc_Core_CallOptions_WriteOptions.htm\u0000105","ChannelOption.IntValue Property\u0000html/P_Grpc_Core_ChannelOption_IntValue.htm\u000099","ChannelOption.Name Property\u0000html/P_Grpc_Core_ChannelOption_Name.htm\u0000103","ChannelOption.StringValue Property\u0000html/P_Grpc_Core_ChannelOption_StringValue.htm\u0000103","ChannelOption.Type Property\u0000html/P_Grpc_Core_ChannelOption_Type.htm\u0000105","Channel.ResolvedTarget Property\u0000html/P_Grpc_Core_Channel_ResolvedTarget.htm\u0000105","Channel.State Property\u0000html/P_Grpc_Core_Channel_State.htm\u000099","Channel.Target Property\u0000html/P_Grpc_Core_Channel_Target.htm\u0000104","ClientBase.Channel Property\u0000html/P_Grpc_Core_ClientBase_Channel.htm\u0000101","ClientBase.HeaderInterceptor Property\u0000html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm\u0000141","ClientBase.Host Property\u0000html/P_Grpc_Core_ClientBase_Host.htm\u0000155","ContextPropagationOptions.IsPropagateCancellation Property\u0000html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm\u0000105","ContextPropagationOptions.IsPropagateDeadline Property\u0000html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm\u0000104","Credentials.Insecure Property\u0000html/P_Grpc_Core_Credentials_Insecure.htm\u0000120","GrpcEnvironment.Logger Property\u0000html/P_Grpc_Core_GrpcEnvironment_Logger.htm\u0000110","IAsyncStreamWriter(T).WriteOptions Property\u0000html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm\u0000141","IHasWriteOptions.WriteOptions Property\u0000html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm\u0000114","IMethod.FullName Property\u0000html/P_Grpc_Core_IMethod_FullName.htm\u0000112","IMethod.Name Property\u0000html/P_Grpc_Core_IMethod_Name.htm\u000098","IMethod.ServiceName Property\u0000html/P_Grpc_Core_IMethod_ServiceName.htm\u0000102","IMethod.Type Property\u0000html/P_Grpc_Core_IMethod_Type.htm\u000093","KeyCertificatePair.CertificateChain Property\u0000html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm\u0000100","KeyCertificatePair.PrivateKey Property\u0000html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm\u0000100","Marshallers.StringMarshaller Property\u0000html/P_Grpc_Core_Marshallers_StringMarshaller.htm\u0000137","Marshaller(T).Deserializer Property\u0000html/P_Grpc_Core_Marshaller_1_Deserializer.htm\u0000159","Marshaller(T).Serializer Property\u0000html/P_Grpc_Core_Marshaller_1_Serializer.htm\u0000155","Metadata.Count Property\u0000html/P_Grpc_Core_Metadata_Count.htm\u0000120","Metadata.Entry.IsBinary Property\u0000html/P_Grpc_Core_Metadata_Entry_IsBinary.htm\u0000104","Metadata.Entry.Key Property\u0000html/P_Grpc_Core_Metadata_Entry_Key.htm\u0000103","Metadata.Entry.Value Property\u0000html/P_Grpc_Core_Metadata_Entry_Value.htm\u0000106","Metadata.Entry.ValueBytes Property\u0000html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm\u0000125","Metadata.IsReadOnly Property\u0000html/P_Grpc_Core_Metadata_IsReadOnly.htm\u0000120","Metadata.Item Property\u0000html/P_Grpc_Core_Metadata_Item.htm\u0000185","Method(TRequest, TResponse).FullName Property\u0000html/P_Grpc_Core_Method_2_FullName.htm\u0000137","Method(TRequest, TResponse).Name Property\u0000html/P_Grpc_Core_Method_2_Name.htm\u0000123","Method(TRequest, TResponse).RequestMarshaller Property\u0000html/P_Grpc_Core_Method_2_RequestMarshaller.htm\u0000125","Method(TRequest, TResponse).ResponseMarshaller Property\u0000html/P_Grpc_Core_Method_2_ResponseMarshaller.htm\u0000125","Method(TRequest, TResponse).ServiceName Property\u0000html/P_Grpc_Core_Method_2_ServiceName.htm\u0000127","Method(TRequest, TResponse).Type Property\u0000html/P_Grpc_Core_Method_2_Type.htm\u0000118","RpcException.Status Property\u0000html/P_Grpc_Core_RpcException_Status.htm\u000097","ServerCallContext.CancellationToken Property\u0000html/P_Grpc_Core_ServerCallContext_CancellationToken.htm\u000099","ServerCallContext.Deadline Property\u0000html/P_Grpc_Core_ServerCallContext_Deadline.htm\u000096","ServerCallContext.Host Property\u0000html/P_Grpc_Core_ServerCallContext_Host.htm\u0000103","ServerCallContext.Method Property\u0000html/P_Grpc_Core_ServerCallContext_Method.htm\u0000103","ServerCallContext.Peer Property\u0000html/P_Grpc_Core_ServerCallContext_Peer.htm\u0000104","ServerCallContext.RequestHeaders Property\u0000html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm\u0000101","ServerCallContext.ResponseTrailers Property\u0000html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm\u0000105","ServerCallContext.Status Property\u0000html/P_Grpc_Core_ServerCallContext_Status.htm\u0000116","ServerCallContext.WriteOptions Property\u0000html/P_Grpc_Core_ServerCallContext_WriteOptions.htm\u0000147","ServerCredentials.Insecure Property\u0000html/P_Grpc_Core_ServerCredentials_Insecure.htm\u0000121","ServerPort.BoundPort Property\u0000html/P_Grpc_Core_ServerPort_BoundPort.htm\u0000126","ServerPort.Credentials Property\u0000html/P_Grpc_Core_ServerPort_Credentials.htm\u0000114","ServerPort.Host Property\u0000html/P_Grpc_Core_ServerPort_Host.htm\u0000113","ServerPort.Port Property\u0000html/P_Grpc_Core_ServerPort_Port.htm\u0000109","Server.Ports Property\u0000html/P_Grpc_Core_Server_Ports.htm\u0000125","Server.Services Property\u0000html/P_Grpc_Core_Server_Services.htm\u0000126","Server.ShutdownTask Property\u0000html/P_Grpc_Core_Server_ShutdownTask.htm\u0000103","SslCredentials.KeyCertificatePair Property\u0000html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm\u0000114","SslCredentials.RootCertificates Property\u0000html/P_Grpc_Core_SslCredentials_RootCertificates.htm\u0000103","SslServerCredentials.ForceClientAuthentication Property\u0000html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm\u0000103","SslServerCredentials.KeyCertificatePairs Property\u0000html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm\u0000126","SslServerCredentials.RootCertificates Property\u0000html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm\u0000101","Status.Detail Property\u0000html/P_Grpc_Core_Status_Detail.htm\u000099","Status.StatusCode Property\u0000html/P_Grpc_Core_Status_StatusCode.htm\u0000108","WriteOptions.Flags Property\u0000html/P_Grpc_Core_WriteOptions_Flags.htm\u000096","Namespaces\u0000html/R_Project_Documentation.htm\u000084","AuthInterceptors Class\u0000html/T_Grpc_Auth_AuthInterceptors.htm\u0000161","AsyncClientStreamingCall(TRequest, TResponse) Class\u0000html/T_Grpc_Core_AsyncClientStreamingCall_2.htm\u0000362","AsyncDuplexStreamingCall(TRequest, TResponse) Class\u0000html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm\u0000359","AsyncServerStreamingCall(TResponse) Class\u0000html/T_Grpc_Core_AsyncServerStreamingCall_1.htm\u0000320","AsyncUnaryCall(TResponse) Class\u0000html/T_Grpc_Core_AsyncUnaryCall_1.htm\u0000333","CallInvocationDetails(TRequest, TResponse) Structure\u0000html/T_Grpc_Core_CallInvocationDetails_2.htm\u0000377","CallOptions Structure\u0000html/T_Grpc_Core_CallOptions.htm\u0000282","Calls Class\u0000html/T_Grpc_Core_Calls.htm\u0000262","Channel Class\u0000html/T_Grpc_Core_Channel.htm\u0000461","ChannelOption Class\u0000html/T_Grpc_Core_ChannelOption.htm\u0000244","ChannelOptions Class\u0000html/T_Grpc_Core_ChannelOptions.htm\u0000187","ChannelOption.OptionType Enumeration\u0000html/T_Grpc_Core_ChannelOption_OptionType.htm\u000082","ChannelState Enumeration\u0000html/T_Grpc_Core_ChannelState.htm\u0000113","ClientBase Class\u0000html/T_Grpc_Core_ClientBase.htm\u0000320","ClientStreamingServerMethod(TRequest, TResponse) Delegate\u0000html/T_Grpc_Core_ClientStreamingServerMethod_2.htm\u0000240","CompressionLevel Enumeration\u0000html/T_Grpc_Core_CompressionLevel.htm\u000089","ContextPropagationOptions Class\u0000html/T_Grpc_Core_ContextPropagationOptions.htm\u0000258","ContextPropagationToken Class\u0000html/T_Grpc_Core_ContextPropagationToken.htm\u0000268","Credentials Class\u0000html/T_Grpc_Core_Credentials.htm\u0000257","DuplexStreamingServerMethod(TRequest, TResponse) Delegate\u0000html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm\u0000266","GrpcEnvironment Class\u0000html/T_Grpc_Core_GrpcEnvironment.htm\u0000227","HeaderInterceptor Delegate\u0000html/T_Grpc_Core_HeaderInterceptor.htm\u0000155","IAsyncStreamReader(T) Interface\u0000html/T_Grpc_Core_IAsyncStreamReader_1.htm\u0000234","IAsyncStreamWriter(T) Interface\u0000html/T_Grpc_Core_IAsyncStreamWriter_1.htm\u0000157","IClientStreamWriter(T) Interface\u0000html/T_Grpc_Core_IClientStreamWriter_1.htm\u0000260","IHasWriteOptions Interface\u0000html/T_Grpc_Core_IHasWriteOptions.htm\u000089","IMethod Interface\u0000html/T_Grpc_Core_IMethod.htm\u0000133","IServerStreamWriter(T) Interface\u0000html/T_Grpc_Core_IServerStreamWriter_1.htm\u0000245","KeyCertificatePair Class\u0000html/T_Grpc_Core_KeyCertificatePair.htm\u0000197","ConsoleLogger Class\u0000html/T_Grpc_Core_Logging_ConsoleLogger.htm\u0000320","ILogger Interface\u0000html/T_Grpc_Core_Logging_ILogger.htm\u0000168","Marshallers Class\u0000html/T_Grpc_Core_Marshallers.htm\u0000130","Marshaller(T) Structure\u0000html/T_Grpc_Core_Marshaller_1.htm\u0000226","Metadata Class\u0000html/T_Grpc_Core_Metadata.htm\u0000421","Metadata.Entry Structure\u0000html/T_Grpc_Core_Metadata_Entry.htm\u0000240","MethodType Enumeration\u0000html/T_Grpc_Core_MethodType.htm\u0000126","Method(TRequest, TResponse) Class\u0000html/T_Grpc_Core_Method_2.htm\u0000358","RpcException Class\u0000html/T_Grpc_Core_RpcException.htm\u0000526","Server Class\u0000html/T_Grpc_Core_Server.htm\u0000344","ServerCallContext Class\u0000html/T_Grpc_Core_ServerCallContext.htm\u0000381","ServerCredentials Class\u0000html/T_Grpc_Core_ServerCredentials.htm\u0000250","ServerPort Class\u0000html/T_Grpc_Core_ServerPort.htm\u0000260","ServerServiceDefinition Class\u0000html/T_Grpc_Core_ServerServiceDefinition.htm\u0000239","ServerServiceDefinition.Builder Class\u0000html/T_Grpc_Core_ServerServiceDefinition_Builder.htm\u0000332","ServerStreamingServerMethod(TRequest, TResponse) Delegate\u0000html/T_Grpc_Core_ServerStreamingServerMethod_2.htm\u0000248","Server.ServerPortCollection Class\u0000html/T_Grpc_Core_Server_ServerPortCollection.htm\u0000312","Server.ServiceDefinitionCollection Class\u0000html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm\u0000278","SslCredentials Class\u0000html/T_Grpc_Core_SslCredentials.htm\u0000274","SslServerCredentials Class\u0000html/T_Grpc_Core_SslServerCredentials.htm\u0000289","Status Structure\u0000html/T_Grpc_Core_Status.htm\u0000235","StatusCode Enumeration\u0000html/T_Grpc_Core_StatusCode.htm\u0000545","UnaryServerMethod(TRequest, TResponse) Delegate\u0000html/T_Grpc_Core_UnaryServerMethod_2.htm\u0000221","AsyncStreamExtensions Class\u0000html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm\u0000211","BenchmarkUtil Class\u0000html/T_Grpc_Core_Utils_BenchmarkUtil.htm\u0000115","Preconditions Class\u0000html/T_Grpc_Core_Utils_Preconditions.htm\u0000177","VersionInfo Class\u0000html/T_Grpc_Core_VersionInfo.htm\u0000109","WriteFlags Enumeration\u0000html/T_Grpc_Core_WriteFlags.htm\u0000148","WriteOptions Class\u0000html/T_Grpc_Core_WriteOptions.htm\u0000230"]
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Events_T_Grpc_Core_RpcException.htm b/doc/ref/csharp/html/html/Events_T_Grpc_Core_RpcException.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e24bbc2c7e06bd6568bd18144eef98856f394cc6
--- /dev/null
+++ b/doc/ref/csharp/html/html/Events_T_Grpc_Core_RpcException.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException Events</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RpcException class, events" /><meta name="Microsoft.Help.Id" content="Events.T:Grpc.Core.RpcException" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Events_T_Grpc_Core_RpcException" /><meta name="guid" content="Events_T_Grpc_Core_RpcException" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor " tocid="Overload_Grpc_Core_RpcException__ctor">RpcException Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_RpcException.htm" title="RpcException Properties" tocid="Properties_T_Grpc_Core_RpcException">RpcException Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_RpcException.htm" title="RpcException Methods" tocid="Methods_T_Grpc_Core_RpcException">RpcException Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Events_T_Grpc_Core_RpcException.htm" title="RpcException Events" tocid="Events_T_Grpc_Core_RpcException">RpcException Events</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException Events</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_RpcException.htm">RpcException</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Events</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protevent.gif" alt="Protected event" title="Protected event" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/ee332915" target="_blank">SerializeObjectState</a></td><td><div class="summary">Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_RpcException.htm">RpcException Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_Census.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_Census.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ed73663360d3e0b163865e387a328f933dd3b9d7
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_Census.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.Census Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Census field" /><meta name="System.Keywords" content="ChannelOptions.Census field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.Census" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.Census" /><meta name="Description" content="Enable census for tracing and stats collection" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_Census" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_Census" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LST19A8F96D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST19A8F96D_0?cpp=::|nu=.");</script>Census Field</td></tr></table><span class="introStyle"></span><div class="summary">Enable census for tracing and stats collection</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">Census</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">Census</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">Census</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">Census</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm
new file mode 100644
index 0000000000000000000000000000000000000000..25b96ead2a3025801fb48802c2aaf54c6b9e0b44
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.DefaultAuthority Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="DefaultAuthority field" /><meta name="System.Keywords" content="ChannelOptions.DefaultAuthority field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.DefaultAuthority" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.DefaultAuthority" /><meta name="Description" content="Default authority for calls." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_DefaultAuthority" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_DefaultAuthority" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LSTC41464EC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC41464EC_0?cpp=::|nu=.");</script>DefaultAuthority Field</td></tr></table><span class="introStyle"></span><div class="summary">Default authority for calls.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">DefaultAuthority</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">DefaultAuthority</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">DefaultAuthority</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">DefaultAuthority</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm
new file mode 100644
index 0000000000000000000000000000000000000000..02a7dbba25339ceffbce07e33afbfdf869b64bc4
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.Http2InitialSequenceNumber Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Http2InitialSequenceNumber field" /><meta name="System.Keywords" content="ChannelOptions.Http2InitialSequenceNumber field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.Http2InitialSequenceNumber" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.Http2InitialSequenceNumber" /><meta name="Description" content="Initial sequence number for http2 transports" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LST3698CF40_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3698CF40_0?cpp=::|nu=.");</script>Http2InitialSequenceNumber Field</td></tr></table><span class="introStyle"></span><div class="summary">Initial sequence number for http2 transports</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">Http2InitialSequenceNumber</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">Http2InitialSequenceNumber</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">Http2InitialSequenceNumber</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">Http2InitialSequenceNumber</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b68c6b35bd7fd8cd7fd154c7d8459affe9939bc8
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.MaxConcurrentStreams Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="MaxConcurrentStreams field" /><meta name="System.Keywords" content="ChannelOptions.MaxConcurrentStreams field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.MaxConcurrentStreams" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.MaxConcurrentStreams" /><meta name="Description" content="Maximum number of concurrent incoming streams to allow on a http2 connection" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LSTF66C263E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF66C263E_0?cpp=::|nu=.");</script>MaxConcurrentStreams Field</td></tr></table><span class="introStyle"></span><div class="summary">Maximum number of concurrent incoming streams to allow on a http2 connection</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">MaxConcurrentStreams</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">MaxConcurrentStreams</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">MaxConcurrentStreams</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">MaxConcurrentStreams</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fd8731373c54de3931adc99270fdc9d550924d1a
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.MaxMessageLength Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="MaxMessageLength field" /><meta name="System.Keywords" content="ChannelOptions.MaxMessageLength field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.MaxMessageLength" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.MaxMessageLength" /><meta name="Description" content="Maximum message length that the channel can receive" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_MaxMessageLength" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_MaxMessageLength" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LST88F6C5B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST88F6C5B_0?cpp=::|nu=.");</script>MaxMessageLength Field</td></tr></table><span class="introStyle"></span><div class="summary">Maximum message length that the channel can receive</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">MaxMessageLength</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">MaxMessageLength</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">MaxMessageLength</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">MaxMessageLength</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1e0f197ef2c648843d5571470a366f5c8db9b2e4
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.PrimaryUserAgentString Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="PrimaryUserAgentString field" /><meta name="System.Keywords" content="ChannelOptions.PrimaryUserAgentString field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.PrimaryUserAgentString" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.PrimaryUserAgentString" /><meta name="Description" content="Primary user agent: goes at the start of the user-agent metadata" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LST6F321D1D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6F321D1D_0?cpp=::|nu=.");</script>PrimaryUserAgentString Field</td></tr></table><span class="introStyle"></span><div class="summary">Primary user agent: goes at the start of the user-agent metadata</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">PrimaryUserAgentString</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">PrimaryUserAgentString</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">PrimaryUserAgentString</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">PrimaryUserAgentString</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1ab07bbcc9f30673b3e998b7224a3f51ff3c680e
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.SecondaryUserAgentString Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SecondaryUserAgentString field" /><meta name="System.Keywords" content="ChannelOptions.SecondaryUserAgentString field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.SecondaryUserAgentString" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.SecondaryUserAgentString" /><meta name="Description" content="Secondary user agent: goes at the end of the user-agent metadata" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LST1C8754B3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1C8754B3_0?cpp=::|nu=.");</script>SecondaryUserAgentString Field</td></tr></table><span class="introStyle"></span><div class="summary">Secondary user agent: goes at the end of the user-agent metadata</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">SecondaryUserAgentString</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">SecondaryUserAgentString</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">SecondaryUserAgentString</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">SecondaryUserAgentString</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm
new file mode 100644
index 0000000000000000000000000000000000000000..45c372a0619dd6c63ba097ef9db9006be1a39e3c
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions.SslTargetNameOverride Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslTargetNameOverride field" /><meta name="System.Keywords" content="ChannelOptions.SslTargetNameOverride field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions.SslTargetNameOverride" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ChannelOptions.SslTargetNameOverride" /><meta name="Description" content="Override SSL target check. Only to be used for testing." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ChannelOptions_SslTargetNameOverride" /><meta name="guid" content="F_Grpc_Core_ChannelOptions_SslTargetNameOverride" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions<span id="LSTA9D274CA_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9D274CA_0?cpp=::|nu=.");</script>SslTargetNameOverride Field</td></tr></table><span class="introStyle"></span><div class="summary">Override SSL target check. Only to be used for testing.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">SslTargetNameOverride</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">SslTargetNameOverride</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">SslTargetNameOverride</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">SslTargetNameOverride</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ContextPropagationOptions_Default.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ContextPropagationOptions_Default.htm
new file mode 100644
index 0000000000000000000000000000000000000000..da24244691316e1d9cdb6f87c0bc73d5bbbbc6c2
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ContextPropagationOptions_Default.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions.Default Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Default field" /><meta name="System.Keywords" content="ContextPropagationOptions.Default field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions.Default" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ContextPropagationOptions.Default" /><meta name="Description" content="The context propagation options that will be used by default." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ContextPropagationOptions_Default" /><meta name="guid" content="F_Grpc_Core_ContextPropagationOptions_Default" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Fields" tocid="Fields_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Fields</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ContextPropagationOptions_Default.htm" title="Default Field" tocid="F_Grpc_Core_ContextPropagationOptions_Default">Default Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions<span id="LST98CFD07D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST98CFD07D_0?cpp=::|nu=.");</script>Default Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            The context propagation options that will be used by default.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">ContextPropagationOptions</span> <span class="identifier">Default</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Default</span> <span class="keyword">As</span> <span class="identifier">ContextPropagationOptions</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">ContextPropagationOptions</span>^ <span class="identifier">Default</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">Default</span>: <span class="identifier">ContextPropagationOptions</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm b/doc/ref/csharp/html/html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a38b7a906d4cee1cce868efa184b993343c7e2f2
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.BinaryHeaderSuffix Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="BinaryHeaderSuffix field" /><meta name="System.Keywords" content="Metadata.BinaryHeaderSuffix field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.BinaryHeaderSuffix" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.Metadata.BinaryHeaderSuffix" /><meta name="Description" content="All binary headers should have this suffix." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_Metadata_BinaryHeaderSuffix" /><meta name="guid" content="F_Grpc_Core_Metadata_BinaryHeaderSuffix" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Metadata.htm" title="Metadata Fields" tocid="Fields_T_Grpc_Core_Metadata">Metadata Fields</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm" title="BinaryHeaderSuffix Field" tocid="F_Grpc_Core_Metadata_BinaryHeaderSuffix">BinaryHeaderSuffix Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Metadata_Empty.htm" title="Empty Field" tocid="F_Grpc_Core_Metadata_Empty">Empty Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST36E3D9E5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36E3D9E5_0?cpp=::|nu=.");</script>BinaryHeaderSuffix Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            All binary headers should have this suffix.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">BinaryHeaderSuffix</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">BinaryHeaderSuffix</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">BinaryHeaderSuffix</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">BinaryHeaderSuffix</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_Metadata_Empty.htm b/doc/ref/csharp/html/html/F_Grpc_Core_Metadata_Empty.htm
new file mode 100644
index 0000000000000000000000000000000000000000..eec5d71768d98d81cdec71a77598732da4ea489b
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_Metadata_Empty.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Empty Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Empty field" /><meta name="System.Keywords" content="Metadata.Empty field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Empty" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.Metadata.Empty" /><meta name="Description" content="An read-only instance of metadata containing no entries." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_Metadata_Empty" /><meta name="guid" content="F_Grpc_Core_Metadata_Empty" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Metadata.htm" title="Metadata Fields" tocid="Fields_T_Grpc_Core_Metadata">Metadata Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm" title="BinaryHeaderSuffix Field" tocid="F_Grpc_Core_Metadata_BinaryHeaderSuffix">BinaryHeaderSuffix Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Metadata_Empty.htm" title="Empty Field" tocid="F_Grpc_Core_Metadata_Empty">Empty Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST6D2EC74B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6D2EC74B_0?cpp=::|nu=.");</script>Empty Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            An read-only instance of metadata containing no entries.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">Metadata</span> <span class="identifier">Empty</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Empty</span> <span class="keyword">As</span> <span class="identifier">Metadata</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">Metadata</span>^ <span class="identifier">Empty</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">Empty</span>: <span class="identifier">Metadata</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_ServerPort_PickUnused.htm b/doc/ref/csharp/html/html/F_Grpc_Core_ServerPort_PickUnused.htm
new file mode 100644
index 0000000000000000000000000000000000000000..200823cc8658d8c5a1a9b11d7566b46a0288902a
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_ServerPort_PickUnused.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort.PickUnused Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="PickUnused field" /><meta name="System.Keywords" content="ServerPort.PickUnused field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.PickUnused" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.ServerPort.PickUnused" /><meta name="Description" content="Pass this value as port to have the server choose an unused listening port for you. Ports added to a server will contain the bound port in their property." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_ServerPort_PickUnused" /><meta name="guid" content="F_Grpc_Core_ServerPort_PickUnused" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ServerPort.htm" title="ServerPort Fields" tocid="Fields_T_Grpc_Core_ServerPort">ServerPort Fields</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ServerPort_PickUnused.htm" title="PickUnused Field" tocid="F_Grpc_Core_ServerPort_PickUnused">PickUnused Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort<span id="LSTB36E3D14_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB36E3D14_0?cpp=::|nu=.");</script>PickUnused Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            Pass this value as port to have the server choose an unused listening port for you.
+            Ports added to a server will contain the bound port in their <a href="P_Grpc_Core_ServerPort_BoundPort.htm">BoundPort</a> property.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">int</span> <span class="identifier">PickUnused</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">PickUnused</span> <span class="keyword">As</span> <span class="identifier">Integer</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">int</span> <span class="identifier">PickUnused</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">PickUnused</span>: <span class="identifier">int</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_Status_DefaultCancelled.htm b/doc/ref/csharp/html/html/F_Grpc_Core_Status_DefaultCancelled.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ebb3349100686e2d1ed479cdb5ed0e618bfc2b41
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_Status_DefaultCancelled.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status.DefaultCancelled Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="DefaultCancelled field" /><meta name="System.Keywords" content="Status.DefaultCancelled field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.DefaultCancelled" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.Status.DefaultCancelled" /><meta name="Description" content="Default result of a cancelled RPC. StatusCode=Cancelled, empty details message." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_Status_DefaultCancelled" /><meta name="guid" content="F_Grpc_Core_Status_DefaultCancelled" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Status.htm" title="Status Fields" tocid="Fields_T_Grpc_Core_Status">Status Fields</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Status_DefaultCancelled.htm" title="DefaultCancelled Field" tocid="F_Grpc_Core_Status_DefaultCancelled">DefaultCancelled Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Status_DefaultSuccess.htm" title="DefaultSuccess Field" tocid="F_Grpc_Core_Status_DefaultSuccess">DefaultSuccess Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status<span id="LSTF9F514E3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF9F514E3_0?cpp=::|nu=.");</script>DefaultCancelled Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            Default result of a cancelled RPC. StatusCode=Cancelled, empty details message.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">Status</span> <span class="identifier">DefaultCancelled</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">DefaultCancelled</span> <span class="keyword">As</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">Status</span> <span class="identifier">DefaultCancelled</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">DefaultCancelled</span>: <span class="identifier">Status</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_Status_DefaultSuccess.htm b/doc/ref/csharp/html/html/F_Grpc_Core_Status_DefaultSuccess.htm
new file mode 100644
index 0000000000000000000000000000000000000000..683f4e09fd984a3fb543ef5ad744a2096bd0c909
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_Status_DefaultSuccess.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status.DefaultSuccess Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="DefaultSuccess field" /><meta name="System.Keywords" content="Status.DefaultSuccess field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.DefaultSuccess" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.Status.DefaultSuccess" /><meta name="Description" content="Default result of a successful RPC. StatusCode=OK, empty details message." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_Status_DefaultSuccess" /><meta name="guid" content="F_Grpc_Core_Status_DefaultSuccess" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Status.htm" title="Status Fields" tocid="Fields_T_Grpc_Core_Status">Status Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Status_DefaultCancelled.htm" title="DefaultCancelled Field" tocid="F_Grpc_Core_Status_DefaultCancelled">DefaultCancelled Field</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Status_DefaultSuccess.htm" title="DefaultSuccess Field" tocid="F_Grpc_Core_Status_DefaultSuccess">DefaultSuccess Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status<span id="LST30C4FE4B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST30C4FE4B_0?cpp=::|nu=.");</script>DefaultSuccess Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            Default result of a successful RPC. StatusCode=OK, empty details message.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">Status</span> <span class="identifier">DefaultSuccess</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">DefaultSuccess</span> <span class="keyword">As</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">Status</span> <span class="identifier">DefaultSuccess</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">DefaultSuccess</span>: <span class="identifier">Status</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_VersionInfo_CurrentVersion.htm b/doc/ref/csharp/html/html/F_Grpc_Core_VersionInfo_CurrentVersion.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fd0b2c5e8d1921462eeec63604964ddd7e4da6b6
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_VersionInfo_CurrentVersion.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>VersionInfo.CurrentVersion Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CurrentVersion field" /><meta name="System.Keywords" content="VersionInfo.CurrentVersion field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.VersionInfo.CurrentVersion" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.VersionInfo.CurrentVersion" /><meta name="Description" content="Current version of gRPC" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_VersionInfo_CurrentVersion" /><meta name="guid" content="F_Grpc_Core_VersionInfo_CurrentVersion" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_VersionInfo.htm" title="VersionInfo Fields" tocid="Fields_T_Grpc_Core_VersionInfo">VersionInfo Fields</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_VersionInfo_CurrentVersion.htm" title="CurrentVersion Field" tocid="F_Grpc_Core_VersionInfo_CurrentVersion">CurrentVersion Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">VersionInfo<span id="LST79E8CE1A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79E8CE1A_0?cpp=::|nu=.");</script>CurrentVersion Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            Current version of gRPC
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">const</span> <span class="identifier">string</span> <span class="identifier">CurrentVersion</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Const</span> <span class="identifier">CurrentVersion</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">literal</span> <span class="identifier">String</span>^ <span class="identifier">CurrentVersion</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="keyword">mutable</span> <span class="identifier">CurrentVersion</span>: <span class="identifier">string</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_VersionInfo.htm">VersionInfo Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/F_Grpc_Core_WriteOptions_Default.htm b/doc/ref/csharp/html/html/F_Grpc_Core_WriteOptions_Default.htm
new file mode 100644
index 0000000000000000000000000000000000000000..89ab161c53a44ada5b79416334a91cf5cc632b88
--- /dev/null
+++ b/doc/ref/csharp/html/html/F_Grpc_Core_WriteOptions_Default.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteOptions.Default Field</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Default field" /><meta name="System.Keywords" content="WriteOptions.Default field" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteOptions.Default" /><meta name="Microsoft.Help.Id" content="F:Grpc.Core.WriteOptions.Default" /><meta name="Description" content="Default write options." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="F_Grpc_Core_WriteOptions_Default" /><meta name="guid" content="F_Grpc_Core_WriteOptions_Default" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Fields" tocid="Fields_T_Grpc_Core_WriteOptions">WriteOptions Fields</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_WriteOptions_Default.htm" title="Default Field" tocid="F_Grpc_Core_WriteOptions_Default">Default Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteOptions<span id="LSTCBEB6BB9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCBEB6BB9_0?cpp=::|nu=.");</script>Default Field</td></tr></table><span class="introStyle"></span><div class="summary">
+            Default write options.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">readonly</span> <span class="identifier">WriteOptions</span> <span class="identifier">Default</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="identifier">Default</span> <span class="keyword">As</span> <span class="identifier">WriteOptions</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">initonly</span> <span class="identifier">WriteOptions</span>^ <span class="identifier">Default</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">val</span> <span class="identifier">Default</span>: <span class="identifier">WriteOptions</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Field Value</h4>Type: <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_WriteOptions.htm">WriteOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ChannelOptions.htm b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ChannelOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8c995989ff2d95b4f84e58e9404813a94a0f03fd
--- /dev/null
+++ b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ChannelOptions.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelOptions class, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:Grpc.Core.ChannelOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Fields_T_Grpc_Core_ChannelOptions" /><meta name="guid" content="Fields_T_Grpc_Core_ChannelOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Census.htm" title="Census Field" tocid="F_Grpc_Core_ChannelOptions_Census">Census Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" title="DefaultAuthority Field" tocid="F_Grpc_Core_ChannelOptions_DefaultAuthority">DefaultAuthority Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" title="Http2InitialSequenceNumber Field" tocid="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber">Http2InitialSequenceNumber Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" title="MaxConcurrentStreams Field" tocid="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams">MaxConcurrentStreams Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" title="MaxMessageLength Field" tocid="F_Grpc_Core_ChannelOptions_MaxMessageLength">MaxMessageLength Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" title="PrimaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString">PrimaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" title="SecondaryUserAgentString Field" tocid="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString">SecondaryUserAgentString Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" title="SslTargetNameOverride Field" tocid="F_Grpc_Core_ChannelOptions_SslTargetNameOverride">SslTargetNameOverride Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions Fields</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_Census.htm">Census</a></td><td><div class="summary">Enable census for tracing and stats collection</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm">DefaultAuthority</a></td><td><div class="summary">Default authority for calls.</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm">Http2InitialSequenceNumber</a></td><td><div class="summary">Initial sequence number for http2 transports</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm">MaxConcurrentStreams</a></td><td><div class="summary">Maximum number of concurrent incoming streams to allow on a http2 connection</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm">MaxMessageLength</a></td><td><div class="summary">Maximum message length that the channel can receive</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm">PrimaryUserAgentString</a></td><td><div class="summary">Primary user agent: goes at the start of the user-agent metadata</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm">SecondaryUserAgentString</a></td><td><div class="summary">Secondary user agent: goes at the end of the user-agent metadata</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm">SslTargetNameOverride</a></td><td><div class="summary">Override SSL target check. Only to be used for testing.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ContextPropagationOptions.htm b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ContextPropagationOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..06d95f3831888f84041c9d0e390bf1e83903f4e6
--- /dev/null
+++ b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ContextPropagationOptions.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ContextPropagationOptions class, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:Grpc.Core.ContextPropagationOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Fields_T_Grpc_Core_ContextPropagationOptions" /><meta name="guid" content="Fields_T_Grpc_Core_ContextPropagationOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Fields" tocid="Fields_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ContextPropagationOptions_Default.htm" title="Default Field" tocid="F_Grpc_Core_ContextPropagationOptions_Default">Default Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions Fields</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ContextPropagationOptions_Default.htm">Default</a></td><td><div class="summary">
+            The context propagation options that will be used by default.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Fields_T_Grpc_Core_Metadata.htm b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_Metadata.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4949c9f7b068ac5e4aa65dbf2d0ab1d52f829182
--- /dev/null
+++ b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_Metadata.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Metadata class, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:Grpc.Core.Metadata" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Fields_T_Grpc_Core_Metadata" /><meta name="guid" content="Fields_T_Grpc_Core_Metadata" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Metadata.htm" title="Metadata Fields" tocid="Fields_T_Grpc_Core_Metadata">Metadata Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm" title="BinaryHeaderSuffix Field" tocid="F_Grpc_Core_Metadata_BinaryHeaderSuffix">BinaryHeaderSuffix Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Metadata_Empty.htm" title="Empty Field" tocid="F_Grpc_Core_Metadata_Empty">Empty Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata Fields</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Metadata.htm">Metadata</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm">BinaryHeaderSuffix</a></td><td><div class="summary">
+            All binary headers should have this suffix.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Metadata_Empty.htm">Empty</a></td><td><div class="summary">
+            An read-only instance of metadata containing no entries.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ServerPort.htm b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ServerPort.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6c8b60e2094916f3ba8c46a9c085efb8a7bbb723
--- /dev/null
+++ b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_ServerPort.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerPort class, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:Grpc.Core.ServerPort" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Fields_T_Grpc_Core_ServerPort" /><meta name="guid" content="Fields_T_Grpc_Core_ServerPort" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ServerPort.htm" title="ServerPort Fields" tocid="Fields_T_Grpc_Core_ServerPort">ServerPort Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_ServerPort_PickUnused.htm" title="PickUnused Field" tocid="F_Grpc_Core_ServerPort_PickUnused">PickUnused Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort Fields</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerPort.htm">ServerPort</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ServerPort_PickUnused.htm">PickUnused</a></td><td><div class="summary">
+            Pass this value as port to have the server choose an unused listening port for you.
+            Ports added to a server will contain the bound port in their <a href="P_Grpc_Core_ServerPort_BoundPort.htm">BoundPort</a> property.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Fields_T_Grpc_Core_Status.htm b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_Status.htm
new file mode 100644
index 0000000000000000000000000000000000000000..824fb06367822fb9ee2962b85a6ae8117097dd8d
--- /dev/null
+++ b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_Status.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Status structure, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:Grpc.Core.Status" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Fields_T_Grpc_Core_Status" /><meta name="guid" content="Fields_T_Grpc_Core_Status" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Status.htm" title="Status Fields" tocid="Fields_T_Grpc_Core_Status">Status Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Status_DefaultCancelled.htm" title="DefaultCancelled Field" tocid="F_Grpc_Core_Status_DefaultCancelled">DefaultCancelled Field</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_Status_DefaultSuccess.htm" title="DefaultSuccess Field" tocid="F_Grpc_Core_Status_DefaultSuccess">DefaultSuccess Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status Fields</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Status.htm">Status</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Status_DefaultCancelled.htm">DefaultCancelled</a></td><td><div class="summary">
+            Default result of a cancelled RPC. StatusCode=Cancelled, empty details message.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Status_DefaultSuccess.htm">DefaultSuccess</a></td><td><div class="summary">
+            Default result of a successful RPC. StatusCode=OK, empty details message.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Fields_T_Grpc_Core_VersionInfo.htm b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_VersionInfo.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5373a4af501d8515dd762c85599eaa304e077e61
--- /dev/null
+++ b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_VersionInfo.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>VersionInfo Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="VersionInfo class, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:Grpc.Core.VersionInfo" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Fields_T_Grpc_Core_VersionInfo" /><meta name="guid" content="Fields_T_Grpc_Core_VersionInfo" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_VersionInfo.htm" title="VersionInfo Fields" tocid="Fields_T_Grpc_Core_VersionInfo">VersionInfo Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_VersionInfo_CurrentVersion.htm" title="CurrentVersion Field" tocid="F_Grpc_Core_VersionInfo_CurrentVersion">CurrentVersion Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">VersionInfo Fields</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_VersionInfo.htm">VersionInfo</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_VersionInfo_CurrentVersion.htm">CurrentVersion</a></td><td><div class="summary">
+            Current version of gRPC
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_VersionInfo.htm">VersionInfo Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Fields_T_Grpc_Core_WriteOptions.htm b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cf412e42ab230826b5a16ac3a8b0626b476d9d0e
--- /dev/null
+++ b/doc/ref/csharp/html/html/Fields_T_Grpc_Core_WriteOptions.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteOptions Fields</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions class, fields" /><meta name="Microsoft.Help.Id" content="Fields.T:Grpc.Core.WriteOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Fields_T_Grpc_Core_WriteOptions" /><meta name="guid" content="Fields_T_Grpc_Core_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Fields" tocid="Fields_T_Grpc_Core_WriteOptions">WriteOptions Fields</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="F_Grpc_Core_WriteOptions_Default.htm" title="Default Field" tocid="F_Grpc_Core_WriteOptions_Default">Default Field</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteOptions Fields</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_WriteOptions_Default.htm">Default</a></td><td><div class="summary">
+            Default write options.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_WriteOptions.htm">WriteOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm b/doc/ref/csharp/html/html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7d1f9d636b360e876bb06efded8faed4aa97c9bf
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AuthInterceptors.FromAccessToken Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="FromAccessToken method" /><meta name="System.Keywords" content="AuthInterceptors.FromAccessToken method" /><meta name="Microsoft.Help.F1" content="Grpc.Auth.AuthInterceptors.FromAccessToken" /><meta name="Microsoft.Help.Id" content="M:Grpc.Auth.AuthInterceptors.FromAccessToken(System.String)" /><meta name="Description" content="Creates OAuth2 interceptor that will use given access token as authorization." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Auth" /><meta name="file" content="M_Grpc_Auth_AuthInterceptors_FromAccessToken" /><meta name="guid" content="M_Grpc_Auth_AuthInterceptors_FromAccessToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Auth.htm" title="Grpc.Auth" tocid="N_Grpc_Auth">Grpc.Auth</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Class" tocid="T_Grpc_Auth_AuthInterceptors">AuthInterceptors Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Methods" tocid="Methods_T_Grpc_Auth_AuthInterceptors">AuthInterceptors Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm" title="FromAccessToken Method " tocid="M_Grpc_Auth_AuthInterceptors_FromAccessToken">FromAccessToken Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Auth_AuthInterceptors_FromCredential.htm" title="FromCredential Method " tocid="M_Grpc_Auth_AuthInterceptors_FromCredential">FromCredential Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AuthInterceptors<span id="LST9EFB2ED9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9EFB2ED9_0?cpp=::|nu=.");</script>FromAccessToken Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates OAuth2 interceptor that will use given access token as authorization.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Auth.htm">Grpc.Auth</a><br /><strong>Assembly:</strong> Grpc.Auth (in Grpc.Auth.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">HeaderInterceptor</span> <span class="identifier">FromAccessToken</span>(
+	<span class="identifier">string</span> <span class="parameter">accessToken</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">FromAccessToken</span> ( 
+	<span class="parameter">accessToken</span> <span class="keyword">As</span> <span class="identifier">String</span>
+) <span class="keyword">As</span> <span class="identifier">HeaderInterceptor</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="identifier">HeaderInterceptor</span>^ <span class="identifier">FromAccessToken</span>(
+	<span class="identifier">String</span>^ <span class="parameter">accessToken</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">FromAccessToken</span> : 
+        <span class="parameter">accessToken</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">HeaderInterceptor</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">accessToken</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST9EFB2ED9_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9EFB2ED9_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />OAuth2 access token.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_HeaderInterceptor.htm">HeaderInterceptor</a><br />The header interceptor.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Auth_AuthInterceptors.htm">AuthInterceptors Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Auth.htm">Grpc.Auth Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm b/doc/ref/csharp/html/html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6c42a93dfa27b9e86cf5bc8e5c2eea3840da7674
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AuthInterceptors.FromCredential Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="FromCredential method" /><meta name="System.Keywords" content="AuthInterceptors.FromCredential method" /><meta name="Microsoft.Help.F1" content="Grpc.Auth.AuthInterceptors.FromCredential" /><meta name="Microsoft.Help.Id" content="M:Grpc.Auth.AuthInterceptors.FromCredential(Google.Apis.Auth.OAuth2.ITokenAccess)" /><meta name="Description" content="Creates interceptor that will obtain access token from any credential type that implements ITokenAccess. (e.g. GoogleCredential)." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Auth" /><meta name="file" content="M_Grpc_Auth_AuthInterceptors_FromCredential" /><meta name="guid" content="M_Grpc_Auth_AuthInterceptors_FromCredential" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Auth.htm" title="Grpc.Auth" tocid="N_Grpc_Auth">Grpc.Auth</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Class" tocid="T_Grpc_Auth_AuthInterceptors">AuthInterceptors Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Methods" tocid="Methods_T_Grpc_Auth_AuthInterceptors">AuthInterceptors Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm" title="FromAccessToken Method " tocid="M_Grpc_Auth_AuthInterceptors_FromAccessToken">FromAccessToken Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Auth_AuthInterceptors_FromCredential.htm" title="FromCredential Method " tocid="M_Grpc_Auth_AuthInterceptors_FromCredential">FromCredential Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AuthInterceptors<span id="LST65A86DE0_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST65A86DE0_0?cpp=::|nu=.");</script>FromCredential Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates interceptor that will obtain access token from any credential type that implements
+            <span class="code">ITokenAccess</span>. (e.g. <span class="code">GoogleCredential</span>).
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Auth.htm">Grpc.Auth</a><br /><strong>Assembly:</strong> Grpc.Auth (in Grpc.Auth.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">HeaderInterceptor</span> <span class="identifier">FromCredential</span>(
+	<span class="identifier">ITokenAccess</span> <span class="parameter">credential</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">FromCredential</span> ( 
+	<span class="parameter">credential</span> <span class="keyword">As</span> <span class="identifier">ITokenAccess</span>
+) <span class="keyword">As</span> <span class="identifier">HeaderInterceptor</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="identifier">HeaderInterceptor</span>^ <span class="identifier">FromCredential</span>(
+	<span class="identifier">ITokenAccess</span>^ <span class="parameter">credential</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">FromCredential</span> : 
+        <span class="parameter">credential</span> : <span class="identifier">ITokenAccess</span> <span class="keyword">-&gt;</span> <span class="identifier">HeaderInterceptor</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">credential</span></dt><dd>Type: <span class="nolink">ITokenAccess</span><br />The credential to use to obtain access tokens.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_HeaderInterceptor.htm">HeaderInterceptor</a><br />The header interceptor.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Auth_AuthInterceptors.htm">AuthInterceptors Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Auth.htm">Grpc.Auth Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm
new file mode 100644
index 0000000000000000000000000000000000000000..206999e0f460328ad32cc1ac75f033d0b6625f4e
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse).Dispose Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Dispose method" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E.Dispose method" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse).Dispose method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.Dispose" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncClientStreamingCall`2.Dispose" /><meta name="Description" content="Provides means to cleanup after the call. If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose" /><meta name="guid" content="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LSTD14F2818_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD14F2818_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTD14F2818_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD14F2818_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTD14F2818_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD14F2818_2?cpp=::|nu=.");</script>Dispose Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Dispose</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/es4s3w1d" target="_blank">IDisposable<span id="LSTD14F2818_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD14F2818_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Dispose<span id="LSTD14F2818_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD14F2818_4?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LSTD14F2818_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD14F2818_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTD14F2818_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD14F2818_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm
new file mode 100644
index 0000000000000000000000000000000000000000..581f356f700ab4b45af806b96c215e5554482643
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse).GetAwaiter Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetAwaiter method" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E.GetAwaiter method" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse).GetAwaiter method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.GetAwaiter" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncClientStreamingCall`2.GetAwaiter" /><meta name="Description" content="Allows awaiting this object directly." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter" /><meta name="guid" content="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LST5658EDC2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5658EDC2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST5658EDC2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5658EDC2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST5658EDC2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5658EDC2_2?cpp=::|nu=.");</script>GetAwaiter Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Allows awaiting this object directly.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">TaskAwaiter</span>&lt;TResponse&gt; <span class="identifier">GetAwaiter</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetAwaiter</span> <span class="keyword">As</span> <span class="identifier">TaskAwaiter</span>(<span class="keyword">Of</span> TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">TaskAwaiter</span>&lt;TResponse&gt; <span class="identifier">GetAwaiter</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetAwaiter</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">TaskAwaiter</span>&lt;'TResponse&gt; 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/hh138386" target="_blank">TaskAwaiter</a><span id="LST5658EDC2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5658EDC2_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST5658EDC2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5658EDC2_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LST5658EDC2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5658EDC2_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST5658EDC2_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5658EDC2_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f3b2899b0c87756d73bd120dc8148e199efeebb2
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse).GetStatus Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetStatus method" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E.GetStatus method" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse).GetStatus method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.GetStatus" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncClientStreamingCall`2.GetStatus" /><meta name="Description" content="Gets the call status if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus" /><meta name="guid" content="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LST98F66E49_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST98F66E49_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST98F66E49_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST98F66E49_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST98F66E49_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST98F66E49_2?cpp=::|nu=.");</script>GetStatus Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetStatus</span> <span class="keyword">As</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetStatus</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Status</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LST98F66E49_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST98F66E49_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST98F66E49_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST98F66E49_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..981d60556518824fa4047e920de4a3bf940f9c03
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse).GetTrailers Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetTrailers method" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E.GetTrailers method" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse).GetTrailers method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.GetTrailers" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncClientStreamingCall`2.GetTrailers" /><meta name="Description" content="Gets the call trailing metadata if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers" /><meta name="guid" content="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LST542B02C3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST542B02C3_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST542B02C3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST542B02C3_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST542B02C3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST542B02C3_2?cpp=::|nu=.");</script>GetTrailers Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span> <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetTrailers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Metadata</span>^ <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetTrailers</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Metadata</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LST542B02C3_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST542B02C3_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST542B02C3_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST542B02C3_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm
new file mode 100644
index 0000000000000000000000000000000000000000..652274451be0466cc653f062a407f35ef4d5e007
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse).Dispose Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Dispose method" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E.Dispose method" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse).Dispose method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.Dispose" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncDuplexStreamingCall`2.Dispose" /><meta name="Description" content="Provides means to cleanup after the call. If the call has already finished normally (request stream has been completed and response stream has been fully read), doesn't do anything." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose" /><meta name="guid" content="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LST915D6D4D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST915D6D4D_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST915D6D4D_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST915D6D4D_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST915D6D4D_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST915D6D4D_2?cpp=::|nu=.");</script>Dispose Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and response stream has been fully read), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Dispose</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/es4s3w1d" target="_blank">IDisposable<span id="LST915D6D4D_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST915D6D4D_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Dispose<span id="LST915D6D4D_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST915D6D4D_4?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LST915D6D4D_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST915D6D4D_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST915D6D4D_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST915D6D4D_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ba96ac35f59f7e11f5897f9a76fdebc654dcddef
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse).GetStatus Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetStatus method" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E.GetStatus method" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse).GetStatus method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.GetStatus" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncDuplexStreamingCall`2.GetStatus" /><meta name="Description" content="Gets the call status if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus" /><meta name="guid" content="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LST6A81DDCC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6A81DDCC_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST6A81DDCC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6A81DDCC_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST6A81DDCC_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6A81DDCC_2?cpp=::|nu=.");</script>GetStatus Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetStatus</span> <span class="keyword">As</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetStatus</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Status</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LST6A81DDCC_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6A81DDCC_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST6A81DDCC_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6A81DDCC_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3b9acfe3634068f253dba68db9b83b8a3e6b2b4f
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse).GetTrailers Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetTrailers method" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E.GetTrailers method" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse).GetTrailers method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.GetTrailers" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncDuplexStreamingCall`2.GetTrailers" /><meta name="Description" content="Gets the call trailing metadata if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers" /><meta name="guid" content="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LSTC5BE90B6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC5BE90B6_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTC5BE90B6_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC5BE90B6_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTC5BE90B6_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC5BE90B6_2?cpp=::|nu=.");</script>GetTrailers Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span> <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetTrailers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Metadata</span>^ <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetTrailers</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Metadata</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LSTC5BE90B6_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC5BE90B6_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC5BE90B6_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC5BE90B6_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm
new file mode 100644
index 0000000000000000000000000000000000000000..452b70ad2ec9f0a291ea4f29ec7ad214b0fbefea
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse).Dispose Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Dispose method" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E.Dispose method" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse).Dispose method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1.Dispose" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncServerStreamingCall`1.Dispose" /><meta name="Description" content="Provides means to cleanup after the call. If the call has already finished normally (response stream has been fully read), doesn't do anything." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose" /><meta name="guid" content="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LSTBC1CEF5B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1CEF5B_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTBC1CEF5B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1CEF5B_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTBC1CEF5B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1CEF5B_2?cpp=::|nu=.");</script>Dispose Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (response stream has been fully read), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Dispose</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/es4s3w1d" target="_blank">IDisposable<span id="LSTBC1CEF5B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1CEF5B_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Dispose<span id="LSTBC1CEF5B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1CEF5B_4?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LSTBC1CEF5B_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1CEF5B_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTBC1CEF5B_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1CEF5B_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a61665e40127d960bbb90ef8f965bc8f5bd1e156
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse).GetStatus Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetStatus method" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E.GetStatus method" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse).GetStatus method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1.GetStatus" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncServerStreamingCall`1.GetStatus" /><meta name="Description" content="Gets the call status if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus" /><meta name="guid" content="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose">Dispose Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LSTE2827012_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2827012_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTE2827012_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2827012_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTE2827012_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2827012_2?cpp=::|nu=.");</script>GetStatus Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetStatus</span> <span class="keyword">As</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetStatus</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Status</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LSTE2827012_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2827012_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTE2827012_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE2827012_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e1cb9b82316de3c0b171c2469f0731bfa8a3cf07
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse).GetTrailers Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetTrailers method" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E.GetTrailers method" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse).GetTrailers method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1.GetTrailers" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncServerStreamingCall`1.GetTrailers" /><meta name="Description" content="Gets the call trailing metadata if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers" /><meta name="guid" content="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LST13CA9BB0_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CA9BB0_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST13CA9BB0_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CA9BB0_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST13CA9BB0_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CA9BB0_2?cpp=::|nu=.");</script>GetTrailers Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span> <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetTrailers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Metadata</span>^ <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetTrailers</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Metadata</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LST13CA9BB0_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CA9BB0_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST13CA9BB0_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CA9BB0_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm
new file mode 100644
index 0000000000000000000000000000000000000000..190d28d0108a49acd5529383b58f51bbc9da7a95
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse).Dispose Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Dispose method" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E.Dispose method" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse).Dispose method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.Dispose" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncUnaryCall`1.Dispose" /><meta name="Description" content="Provides means to cleanup after the call. If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncUnaryCall_1_Dispose" /><meta name="guid" content="M_Grpc_Core_AsyncUnaryCall_1_Dispose" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LST7E559D57_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7E559D57_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST7E559D57_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7E559D57_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST7E559D57_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7E559D57_2?cpp=::|nu=.");</script>Dispose Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Dispose</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Dispose</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Dispose</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/es4s3w1d" target="_blank">IDisposable<span id="LST7E559D57_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7E559D57_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Dispose<span id="LST7E559D57_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7E559D57_4?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LST7E559D57_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7E559D57_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST7E559D57_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7E559D57_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4d12b2a9f9fa4a600eb1ff13eeb9fd1dc6835932
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse).GetAwaiter Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetAwaiter method" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E.GetAwaiter method" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse).GetAwaiter method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.GetAwaiter" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncUnaryCall`1.GetAwaiter" /><meta name="Description" content="Allows awaiting this object directly." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter" /><meta name="guid" content="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_Dispose">Dispose Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LSTA96933A7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA96933A7_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTA96933A7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA96933A7_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTA96933A7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA96933A7_2?cpp=::|nu=.");</script>GetAwaiter Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Allows awaiting this object directly.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">TaskAwaiter</span>&lt;TResponse&gt; <span class="identifier">GetAwaiter</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetAwaiter</span> <span class="keyword">As</span> <span class="identifier">TaskAwaiter</span>(<span class="keyword">Of</span> TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">TaskAwaiter</span>&lt;TResponse&gt; <span class="identifier">GetAwaiter</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetAwaiter</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">TaskAwaiter</span>&lt;'TResponse&gt; 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/hh138386" target="_blank">TaskAwaiter</a><span id="LSTA96933A7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA96933A7_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncUnaryCall_1.htm"><span class="typeparameter">TResponse</span></a><span id="LSTA96933A7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA96933A7_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LSTA96933A7_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA96933A7_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTA96933A7_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA96933A7_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9c6bc1bce35d886b07be84806ad65f6c19250342
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse).GetStatus Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetStatus method" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E.GetStatus method" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse).GetStatus method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.GetStatus" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncUnaryCall`1.GetStatus" /><meta name="Description" content="Gets the call status if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncUnaryCall_1_GetStatus" /><meta name="guid" content="M_Grpc_Core_AsyncUnaryCall_1_GetStatus" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LST691ACF10_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST691ACF10_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST691ACF10_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST691ACF10_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST691ACF10_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST691ACF10_2?cpp=::|nu=.");</script>GetStatus Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetStatus</span> <span class="keyword">As</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Status</span> <span class="identifier">GetStatus</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetStatus</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Status</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LST691ACF10_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST691ACF10_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST691ACF10_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST691ACF10_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b78100c95ee789d9bf448c51feb5d1d76d7f15e0
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse).GetTrailers Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetTrailers method" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E.GetTrailers method" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse).GetTrailers method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.GetTrailers" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.AsyncUnaryCall`1.GetTrailers" /><meta name="Description" content="Gets the call trailing metadata if the call has already finished. Throws InvalidOperationException otherwise." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers" /><meta name="guid" content="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LST8E834442_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E834442_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST8E834442_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E834442_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST8E834442_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E834442_2?cpp=::|nu=.");</script>GetTrailers Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span> <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetTrailers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Metadata</span>^ <span class="identifier">GetTrailers</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">GetTrailers</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Metadata</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LST8E834442_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E834442_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST8E834442_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E834442_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e7f9826e8f963f8c826914bd0c581f40bc908bf9
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse).WithOptions Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WithOptions method" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.WithOptions method" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).WithOptions method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.WithOptions" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallInvocationDetails`2.WithOptions(Grpc.Core.CallOptions)" /><meta name="Description" content="Returns new instance of with Options set to the value provided. Values of all other fields are preserved." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallInvocationDetails_2_WithOptions" /><meta name="guid" content="M_Grpc_Core_CallInvocationDetails_2_WithOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm" title="WithOptions Method " tocid="M_Grpc_Core_CallInvocationDetails_2_WithOptions">WithOptions Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST9BD2CC8A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST9BD2CC8A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST9BD2CC8A_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_2?cpp=::|nu=.");</script>WithOptions Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST9BD2CC8A_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9BD2CC8A_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> with
+            <span class="code">Options</span> set to the value provided. Values of all other fields are preserved.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="identifier">WithOptions</span>(
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">WithOptions</span> ( 
+	<span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">CallOptions</span>
+) <span class="keyword">As</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="identifier">WithOptions</span>(
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WithOptions</span> : 
+        <span class="parameter">options</span> : <span class="identifier">CallOptions</span> <span class="keyword">-&gt;</span> <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt; 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">options</span></dt><dd>Type: <a href="T_Grpc_Core_CallOptions.htm">Grpc.Core<span id="LST9BD2CC8A_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallOptions</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="options"/&gt; documentation for "M:Grpc.Core.CallInvocationDetails`2.WithOptions(Grpc.Core.CallOptions)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails</a><span id="LST9BD2CC8A_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TRequest</span></a>, <a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST9BD2CC8A_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST9BD2CC8A_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9BD2CC8A_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9BD2CC8A_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1b3b2d321852738ac9a1b7aa48dfa3a9bb86945f
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallInvocationDetails`2.#ctor(Grpc.Core.Channel,Grpc.Core.Method{`0,`1},Grpc.Core.CallOptions)" /><meta name="Description" content="Initializes a new instance of the struct." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallInvocationDetails_2__ctor" /><meta name="guid" content="M_Grpc_Core_CallInvocationDetails_2__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor " tocid="Overload_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_1">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_2">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST2F856D14_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST2F856D14_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Constructor (Channel, Method<span id="LST2F856D14_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST2F856D14_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, CallOptions)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST2F856D14_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST2F856D14_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> struct.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallInvocationDetails</span>(
+	<span class="identifier">Channel</span> <span class="parameter">channel</span>,
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt; <span class="parameter">method</span>,
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">channel</span> <span class="keyword">As</span> <span class="identifier">Channel</span>,
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">CallOptions</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallInvocationDetails</span>(
+	<span class="identifier">Channel</span>^ <span class="parameter">channel</span>, 
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">method</span>, 
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">channel</span> : <span class="identifier">Channel</span> * 
+        <span class="parameter">method</span> : <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">options</span> : <span class="identifier">CallOptions</span> <span class="keyword">-&gt;</span> <span class="identifier">CallInvocationDetails</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">channel</span></dt><dd>Type: <a href="T_Grpc_Core_Channel.htm">Grpc.Core<span id="LST2F856D14_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Channel</a><br />Channel to use for this call.</dd><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_Method_2.htm">Grpc.Core<span id="LST2F856D14_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method</a><span id="LST2F856D14_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TRequest</span></a>, <a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST2F856D14_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Method to call.</dd><dt><span class="parameter">options</span></dt><dd>Type: <a href="T_Grpc_Core_CallOptions.htm">Grpc.Core<span id="LST2F856D14_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallOptions</a><br />Call options.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST2F856D14_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_11?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST2F856D14_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_12?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm">CallInvocationDetails<span id="LST2F856D14_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_13?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST2F856D14_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2F856D14_14?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f8caf7e06a03500e935a49cd70ebdddec7941eeb
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm
@@ -0,0 +1,23 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallInvocationDetails`2.#ctor(Grpc.Core.Channel,Grpc.Core.Method{`0,`1},System.String,Grpc.Core.CallOptions)" /><meta name="Description" content="Initializes a new instance of the struct." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallInvocationDetails_2__ctor_1" /><meta name="guid" content="M_Grpc_Core_CallInvocationDetails_2__ctor_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor " tocid="Overload_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_1">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_2">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LSTA9732474_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA9732474_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Constructor (Channel, Method<span id="LSTA9732474_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA9732474_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, String, CallOptions)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTA9732474_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA9732474_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> struct.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallInvocationDetails</span>(
+	<span class="identifier">Channel</span> <span class="parameter">channel</span>,
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt; <span class="parameter">method</span>,
+	<span class="identifier">string</span> <span class="parameter">host</span>,
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">channel</span> <span class="keyword">As</span> <span class="identifier">Channel</span>,
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">host</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">CallOptions</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallInvocationDetails</span>(
+	<span class="identifier">Channel</span>^ <span class="parameter">channel</span>, 
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">method</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">host</span>, 
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">channel</span> : <span class="identifier">Channel</span> * 
+        <span class="parameter">method</span> : <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">host</span> : <span class="identifier">string</span> * 
+        <span class="parameter">options</span> : <span class="identifier">CallOptions</span> <span class="keyword">-&gt;</span> <span class="identifier">CallInvocationDetails</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">channel</span></dt><dd>Type: <a href="T_Grpc_Core_Channel.htm">Grpc.Core<span id="LSTA9732474_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Channel</a><br />Channel to use for this call.</dd><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_Method_2.htm">Grpc.Core<span id="LSTA9732474_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method</a><span id="LSTA9732474_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TRequest</span></a>, <a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TResponse</span></a><span id="LSTA9732474_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Method to call.</dd><dt><span class="parameter">host</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTA9732474_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Host that contains the method. if <span class="code">null</span>, default host will be used.</dd><dt><span class="parameter">options</span></dt><dd>Type: <a href="T_Grpc_Core_CallOptions.htm">Grpc.Core<span id="LSTA9732474_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallOptions</a><br />Call options.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTA9732474_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_12?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA9732474_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_13?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm">CallInvocationDetails<span id="LSTA9732474_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_14?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA9732474_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9732474_15?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..52738bfc456067c314e75e41caf3da7298379234
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm
@@ -0,0 +1,31 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallInvocationDetails`2.#ctor(Grpc.Core.Channel,System.String,System.String,Grpc.Core.Marshaller{`0},Grpc.Core.Marshaller{`1},Grpc.Core.CallOptions)" /><meta name="Description" content="Initializes a new instance of the struct." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallInvocationDetails_2__ctor_2" /><meta name="guid" content="M_Grpc_Core_CallInvocationDetails_2__ctor_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor " tocid="Overload_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_1">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_2">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST8DF8F0A2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST8DF8F0A2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Constructor (Channel, String, String, Marshaller<span id="LST8DF8F0A2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span><span id="LST8DF8F0A2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Marshaller<span id="LST8DF8F0A2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST8DF8F0A2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, CallOptions)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST8DF8F0A2_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST8DF8F0A2_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> struct.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallInvocationDetails</span>(
+	<span class="identifier">Channel</span> <span class="parameter">channel</span>,
+	<span class="identifier">string</span> <span class="parameter">method</span>,
+	<span class="identifier">string</span> <span class="parameter">host</span>,
+	<span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="parameter">requestMarshaller</span>,
+	<span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="parameter">responseMarshaller</span>,
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">channel</span> <span class="keyword">As</span> <span class="identifier">Channel</span>,
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">host</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">requestMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TRequest),
+	<span class="parameter">responseMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TResponse),
+	<span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">CallOptions</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallInvocationDetails</span>(
+	<span class="identifier">Channel</span>^ <span class="parameter">channel</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">method</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">host</span>, 
+	<span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="parameter">requestMarshaller</span>, 
+	<span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="parameter">responseMarshaller</span>, 
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">channel</span> : <span class="identifier">Channel</span> * 
+        <span class="parameter">method</span> : <span class="identifier">string</span> * 
+        <span class="parameter">host</span> : <span class="identifier">string</span> * 
+        <span class="parameter">requestMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TRequest&gt; * 
+        <span class="parameter">responseMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TResponse&gt; * 
+        <span class="parameter">options</span> : <span class="identifier">CallOptions</span> <span class="keyword">-&gt;</span> <span class="identifier">CallInvocationDetails</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">channel</span></dt><dd>Type: <a href="T_Grpc_Core_Channel.htm">Grpc.Core<span id="LST8DF8F0A2_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Channel</a><br />Channel to use for this call.</dd><dt><span class="parameter">method</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST8DF8F0A2_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Qualified method name.</dd><dt><span class="parameter">host</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST8DF8F0A2_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Host that contains the method.</dd><dt><span class="parameter">requestMarshaller</span></dt><dd>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Grpc.Core<span id="LST8DF8F0A2_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Marshaller</a><span id="LST8DF8F0A2_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_12?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TRequest</span></a><span id="LST8DF8F0A2_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_13?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Request marshaller.</dd><dt><span class="parameter">responseMarshaller</span></dt><dd>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Grpc.Core<span id="LST8DF8F0A2_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_14?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Marshaller</a><span id="LST8DF8F0A2_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_15?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST8DF8F0A2_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_16?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Response marshaller.</dd><dt><span class="parameter">options</span></dt><dd>Type: <a href="T_Grpc_Core_CallOptions.htm">Grpc.Core<span id="LST8DF8F0A2_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_17?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallOptions</a><br />Call options.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST8DF8F0A2_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_18?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST8DF8F0A2_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_19?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm">CallInvocationDetails<span id="LST8DF8F0A2_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_20?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST8DF8F0A2_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8DF8F0A2_21?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithCancellationToken.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithCancellationToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e5bbc4eaae6fd7e8839724d6a95a7a828dfe6bbe
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithCancellationToken.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.WithCancellationToken Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WithCancellationToken method" /><meta name="System.Keywords" content="CallOptions.WithCancellationToken method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.WithCancellationToken" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallOptions.WithCancellationToken(System.Threading.CancellationToken)" /><meta name="Description" content="Returns new instance of with CancellationToken set to the value provided. Values of all other fields are preserved." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallOptions_WithCancellationToken" /><meta name="guid" content="M_Grpc_Core_CallOptions_WithCancellationToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallOptions.htm" title="CallOptions Methods" tocid="Methods_T_Grpc_Core_CallOptions">CallOptions Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithCancellationToken.htm" title="WithCancellationToken Method " tocid="M_Grpc_Core_CallOptions_WithCancellationToken">WithCancellationToken Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithDeadline.htm" title="WithDeadline Method " tocid="M_Grpc_Core_CallOptions_WithDeadline">WithDeadline Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithHeaders.htm" title="WithHeaders Method " tocid="M_Grpc_Core_CallOptions_WithHeaders">WithHeaders Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LST77C31AE4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77C31AE4_0?cpp=::|nu=.");</script>WithCancellationToken Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> with
+            <span class="code">CancellationToken</span> set to the value provided. Values of all other fields are preserved.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallOptions</span> <span class="identifier">WithCancellationToken</span>(
+	<span class="identifier">CancellationToken</span> <span class="parameter">cancellationToken</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">WithCancellationToken</span> ( 
+	<span class="parameter">cancellationToken</span> <span class="keyword">As</span> <span class="identifier">CancellationToken</span>
+) <span class="keyword">As</span> <span class="identifier">CallOptions</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallOptions</span> <span class="identifier">WithCancellationToken</span>(
+	<span class="identifier">CancellationToken</span> <span class="parameter">cancellationToken</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WithCancellationToken</span> : 
+        <span class="parameter">cancellationToken</span> : <span class="identifier">CancellationToken</span> <span class="keyword">-&gt;</span> <span class="identifier">CallOptions</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">cancellationToken</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd384802" target="_blank">System.Threading<span id="LST77C31AE4_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77C31AE4_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CancellationToken</a><br />The cancellation token.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithDeadline.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithDeadline.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9d7e0d2dcb78b16d91a2cd5e4b21ee6efb032257
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithDeadline.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.WithDeadline Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WithDeadline method" /><meta name="System.Keywords" content="CallOptions.WithDeadline method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.WithDeadline" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallOptions.WithDeadline(System.DateTime)" /><meta name="Description" content="Returns new instance of with Deadline set to the value provided. Values of all other fields are preserved." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallOptions_WithDeadline" /><meta name="guid" content="M_Grpc_Core_CallOptions_WithDeadline" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallOptions.htm" title="CallOptions Methods" tocid="Methods_T_Grpc_Core_CallOptions">CallOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithCancellationToken.htm" title="WithCancellationToken Method " tocid="M_Grpc_Core_CallOptions_WithCancellationToken">WithCancellationToken Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithDeadline.htm" title="WithDeadline Method " tocid="M_Grpc_Core_CallOptions_WithDeadline">WithDeadline Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithHeaders.htm" title="WithHeaders Method " tocid="M_Grpc_Core_CallOptions_WithHeaders">WithHeaders Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LST18357B11_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18357B11_0?cpp=::|nu=.");</script>WithDeadline Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> with
+            <span class="code">Deadline</span> set to the value provided. Values of all other fields are preserved.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallOptions</span> <span class="identifier">WithDeadline</span>(
+	<span class="identifier">DateTime</span> <span class="parameter">deadline</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">WithDeadline</span> ( 
+	<span class="parameter">deadline</span> <span class="keyword">As</span> <span class="identifier">DateTime</span>
+) <span class="keyword">As</span> <span class="identifier">CallOptions</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallOptions</span> <span class="identifier">WithDeadline</span>(
+	<span class="identifier">DateTime</span> <span class="parameter">deadline</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WithDeadline</span> : 
+        <span class="parameter">deadline</span> : <span class="identifier">DateTime</span> <span class="keyword">-&gt;</span> <span class="identifier">CallOptions</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">deadline</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/03ybds8y" target="_blank">System<span id="LST18357B11_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18357B11_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>DateTime</a><br />The deadline.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithHeaders.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithHeaders.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6d65f8330e8e9578f087446475990b9766dee47a
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions_WithHeaders.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.WithHeaders Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WithHeaders method" /><meta name="System.Keywords" content="CallOptions.WithHeaders method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.WithHeaders" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallOptions.WithHeaders(Grpc.Core.Metadata)" /><meta name="Description" content="Returns new instance of with Headers set to the value provided. Values of all other fields are preserved." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallOptions_WithHeaders" /><meta name="guid" content="M_Grpc_Core_CallOptions_WithHeaders" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallOptions.htm" title="CallOptions Methods" tocid="Methods_T_Grpc_Core_CallOptions">CallOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithCancellationToken.htm" title="WithCancellationToken Method " tocid="M_Grpc_Core_CallOptions_WithCancellationToken">WithCancellationToken Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithDeadline.htm" title="WithDeadline Method " tocid="M_Grpc_Core_CallOptions_WithDeadline">WithDeadline Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithHeaders.htm" title="WithHeaders Method " tocid="M_Grpc_Core_CallOptions_WithHeaders">WithHeaders Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LST9B3F2FE5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B3F2FE5_0?cpp=::|nu=.");</script>WithHeaders Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> with
+            <span class="code">Headers</span> set to the value provided. Values of all other fields are preserved.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallOptions</span> <span class="identifier">WithHeaders</span>(
+	<span class="identifier">Metadata</span> <span class="parameter">headers</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">WithHeaders</span> ( 
+	<span class="parameter">headers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span>
+) <span class="keyword">As</span> <span class="identifier">CallOptions</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallOptions</span> <span class="identifier">WithHeaders</span>(
+	<span class="identifier">Metadata</span>^ <span class="parameter">headers</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WithHeaders</span> : 
+        <span class="parameter">headers</span> : <span class="identifier">Metadata</span> <span class="keyword">-&gt;</span> <span class="identifier">CallOptions</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">headers</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata.htm">Grpc.Core<span id="LST9B3F2FE5_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B3F2FE5_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata</a><br />The headers.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ee9c631edba84e68e156941db9b561ffc1249820
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_CallOptions__ctor.htm
@@ -0,0 +1,35 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallOptions structure, constructor" /><meta name="System.Keywords" content="CallOptions.CallOptions constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.CallOptions" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.CallOptions.#ctor(Grpc.Core.Metadata,System.Nullable{System.DateTime},System.Threading.CancellationToken,Grpc.Core.WriteOptions,Grpc.Core.ContextPropagationToken)" /><meta name="Description" content="Creates a new instance of CallOptions struct." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_CallOptions__ctor" /><meta name="guid" content="M_Grpc_Core_CallOptions__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions__ctor.htm" title="CallOptions Constructor " tocid="M_Grpc_Core_CallOptions__ctor">CallOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallOptions.htm" title="CallOptions Methods" tocid="Methods_T_Grpc_Core_CallOptions">CallOptions Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new instance of <span class="code">CallOptions</span> struct.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallOptions</span>(
+	<span class="identifier">Metadata</span> <span class="parameter">headers</span> = <span class="keyword">null</span>,
+	<span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="parameter">deadline</span> = <span class="keyword">null</span>,
+	<span class="identifier">CancellationToken</span> <span class="parameter">cancellationToken</span> = <span class="keyword">null</span>,
+	<span class="identifier">WriteOptions</span> <span class="parameter">writeOptions</span> = <span class="keyword">null</span>,
+	<span class="identifier">ContextPropagationToken</span> <span class="parameter">propagationToken</span> = <span class="keyword">null</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	Optional <span class="parameter">headers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span> = <span class="keyword">Nothing</span>,
+	Optional <span class="parameter">deadline</span> <span class="keyword">As</span> <span class="identifier">Nullable</span>(<span class="keyword">Of</span> <span class="identifier">DateTime</span>) = <span class="keyword">Nothing</span>,
+	Optional <span class="parameter">cancellationToken</span> <span class="keyword">As</span> <span class="identifier">CancellationToken</span> = <span class="keyword">Nothing</span>,
+	Optional <span class="parameter">writeOptions</span> <span class="keyword">As</span> <span class="identifier">WriteOptions</span> = <span class="keyword">Nothing</span>,
+	Optional <span class="parameter">propagationToken</span> <span class="keyword">As</span> <span class="identifier">ContextPropagationToken</span> = <span class="keyword">Nothing</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">CallOptions</span>(
+	<span class="identifier">Metadata</span>^ <span class="parameter">headers</span> = <span class="keyword">nullptr</span>, 
+	<span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="parameter">deadline</span> = <span class="keyword">nullptr</span>, 
+	<span class="identifier">CancellationToken</span> <span class="parameter">cancellationToken</span> = <span class="keyword">nullptr</span>, 
+	<span class="identifier">WriteOptions</span>^ <span class="parameter">writeOptions</span> = <span class="keyword">nullptr</span>, 
+	<span class="identifier">ContextPropagationToken</span>^ <span class="parameter">propagationToken</span> = <span class="keyword">nullptr</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        ?<span class="parameter">headers</span> : <span class="identifier">Metadata</span> * 
+        ?<span class="parameter">deadline</span> : <span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; * 
+        ?<span class="parameter">cancellationToken</span> : <span class="identifier">CancellationToken</span> * 
+        ?<span class="parameter">writeOptions</span> : <span class="identifier">WriteOptions</span> * 
+        ?<span class="parameter">propagationToken</span> : <span class="identifier">ContextPropagationToken</span> 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">headers</span> = defaultArg <span class="identifier">headers</span> <span class="keyword">null</span>
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">deadline</span> = defaultArg <span class="identifier">deadline</span> <span class="keyword">null</span>
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">cancellationToken</span> = defaultArg <span class="identifier">cancellationToken</span> <span class="keyword">null</span>
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">writeOptions</span> = defaultArg <span class="identifier">writeOptions</span> <span class="keyword">null</span>
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">propagationToken</span> = defaultArg <span class="identifier">propagationToken</span> <span class="keyword">null</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">CallOptions</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">headers</span> (Optional)</dt><dd>Type: <a href="T_Grpc_Core_Metadata.htm">Grpc.Core<span id="LST883CC382_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST883CC382_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata</a><br />Headers to be sent with the call.</dd><dt><span class="parameter">deadline</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/b3h38hb0" target="_blank">System<span id="LST883CC382_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST883CC382_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Nullable</a><span id="LST883CC382_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST883CC382_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="http://msdn2.microsoft.com/en-us/library/03ybds8y" target="_blank">DateTime</a><span id="LST883CC382_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST883CC382_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Deadline for the call to finish. null means no deadline.</dd><dt><span class="parameter">cancellationToken</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd384802" target="_blank">System.Threading<span id="LST883CC382_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST883CC382_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CancellationToken</a><br />Can be used to request cancellation of the call.</dd><dt><span class="parameter">writeOptions</span> (Optional)</dt><dd>Type: <a href="T_Grpc_Core_WriteOptions.htm">Grpc.Core<span id="LST883CC382_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST883CC382_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>WriteOptions</a><br />Write options that will be used for this call.</dd><dt><span class="parameter">propagationToken</span> (Optional)</dt><dd>Type: <a href="T_Grpc_Core_ContextPropagationToken.htm">Grpc.Core<span id="LST883CC382_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST883CC382_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ContextPropagationToken</a><br />Context propagation token obtained from <a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext</a>.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f1a9131a2a253d9fcf88fbf0db4ea4e568e1b433
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Calls.AsyncClientStreamingCall(TRequest, TResponse) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse) method" /><meta name="System.Keywords" content="Calls.AsyncClientStreamingCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="Calls.AsyncClientStreamingCall(Of TRequest%2C TResponse) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Calls.AsyncClientStreamingCall``2" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Calls.AsyncClientStreamingCall``2(Grpc.Core.CallInvocationDetails{``0,``1})" /><meta name="Description" content="Invokes a client streaming call asynchronously. In client streaming scenario, client sends a stream of requests and server responds with a single response." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Calls_AsyncClientStreamingCall__2" /><meta name="guid" content="M_Grpc_Core_Calls_AsyncClientStreamingCall__2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Calls.htm" title="Calls Methods" tocid="Methods_T_Grpc_Core_Calls">Calls Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncClientStreamingCall__2">AsyncClientStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2">AsyncDuplexStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" title="AsyncServerStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncServerStreamingCall__2">AsyncServerStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" title="AsyncUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncUnaryCall__2">AsyncUnaryCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" title="BlockingUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_BlockingUnaryCall__2">BlockingUnaryCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Calls<span id="LST79B5F655_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_0?cpp=::|nu=.");</script>AsyncClientStreamingCall<span id="LST79B5F655_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST79B5F655_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Invokes a client streaming call asynchronously.
+            In client streaming scenario, client sends a stream of requests and server responds with a single response.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">AsyncClientStreamingCall</span>&lt;TRequest, TResponse&gt; <span class="identifier">AsyncClientStreamingCall</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">AsyncClientStreamingCall</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">call</span> <span class="keyword">As</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse)
+) <span class="keyword">As</span> <span class="identifier">AsyncClientStreamingCall</span>(<span class="keyword">Of</span> TRequest, TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">AsyncClientStreamingCall</span>&lt;TRequest, TResponse&gt;^ <span class="identifier">AsyncClientStreamingCall</span>(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">AsyncClientStreamingCall</span> : 
+        <span class="parameter">call</span> : <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt; <span class="keyword">-&gt;</span> <span class="identifier">AsyncClientStreamingCall</span>&lt;'TRequest, 'TResponse&gt;  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">call</span></dt><dd>Type: <a href="T_Grpc_Core_CallInvocationDetails_2.htm">Grpc.Core<span id="LST79B5F655_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallInvocationDetails</a><span id="LST79B5F655_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST79B5F655_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The call defintion.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Type of request messages.</dd><dt><span class="parameter">TResponse</span></dt><dd>The of response message.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall</a><span id="LST79B5F655_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST79B5F655_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79B5F655_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />An awaitable call object providing access to the response.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Calls.htm">Calls Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6dba139ab8e70d58abe090af18f504e12c46c569
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Calls.AsyncDuplexStreamingCall(TRequest, TResponse) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse) method" /><meta name="System.Keywords" content="Calls.AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="Calls.AsyncDuplexStreamingCall(Of TRequest%2C TResponse) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Calls.AsyncDuplexStreamingCall``2" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Calls.AsyncDuplexStreamingCall``2(Grpc.Core.CallInvocationDetails{``0,``1})" /><meta name="Description" content="Invokes a duplex streaming call asynchronously. In duplex streaming scenario, client sends a stream of requests and server responds with a stream of responses." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2" /><meta name="guid" content="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Calls.htm" title="Calls Methods" tocid="Methods_T_Grpc_Core_Calls">Calls Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncClientStreamingCall__2">AsyncClientStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2">AsyncDuplexStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" title="AsyncServerStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncServerStreamingCall__2">AsyncServerStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" title="AsyncUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncUnaryCall__2">AsyncUnaryCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" title="BlockingUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_BlockingUnaryCall__2">BlockingUnaryCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Calls<span id="LST2586B34A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_0?cpp=::|nu=.");</script>AsyncDuplexStreamingCall<span id="LST2586B34A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST2586B34A_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Invokes a duplex streaming call asynchronously.
+            In duplex streaming scenario, client sends a stream of requests and server responds with a stream of responses.
+            The response stream is completely independent and both side can be sending messages at the same time.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">AsyncDuplexStreamingCall</span>&lt;TRequest, TResponse&gt; <span class="identifier">AsyncDuplexStreamingCall</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">AsyncDuplexStreamingCall</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">call</span> <span class="keyword">As</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse)
+) <span class="keyword">As</span> <span class="identifier">AsyncDuplexStreamingCall</span>(<span class="keyword">Of</span> TRequest, TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">AsyncDuplexStreamingCall</span>&lt;TRequest, TResponse&gt;^ <span class="identifier">AsyncDuplexStreamingCall</span>(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">AsyncDuplexStreamingCall</span> : 
+        <span class="parameter">call</span> : <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt; <span class="keyword">-&gt;</span> <span class="identifier">AsyncDuplexStreamingCall</span>&lt;'TRequest, 'TResponse&gt;  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">call</span></dt><dd>Type: <a href="T_Grpc_Core_CallInvocationDetails_2.htm">Grpc.Core<span id="LST2586B34A_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallInvocationDetails</a><span id="LST2586B34A_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST2586B34A_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The call definition.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Type of request messages.</dd><dt><span class="parameter">TResponse</span></dt><dd>Type of reponse messages.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall</a><span id="LST2586B34A_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST2586B34A_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2586B34A_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />A call object providing access to the asynchronous request and response streams.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Calls.htm">Calls Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b5ac0db6c59673a882d675fa3d0f4e52e3485337
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm
@@ -0,0 +1,23 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Calls.AsyncServerStreamingCall(TRequest, TResponse) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TRequest%2C TResponse) method" /><meta name="System.Keywords" content="Calls.AsyncServerStreamingCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="Calls.AsyncServerStreamingCall(Of TRequest%2C TResponse) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Calls.AsyncServerStreamingCall``2" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Calls.AsyncServerStreamingCall``2(Grpc.Core.CallInvocationDetails{``0,``1},``0)" /><meta name="Description" content="Invokes a server streaming call asynchronously. In server streaming scenario, client sends on request and server responds with a stream of responses." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Calls_AsyncServerStreamingCall__2" /><meta name="guid" content="M_Grpc_Core_Calls_AsyncServerStreamingCall__2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Calls.htm" title="Calls Methods" tocid="Methods_T_Grpc_Core_Calls">Calls Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncClientStreamingCall__2">AsyncClientStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2">AsyncDuplexStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" title="AsyncServerStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncServerStreamingCall__2">AsyncServerStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" title="AsyncUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncUnaryCall__2">AsyncUnaryCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" title="BlockingUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_BlockingUnaryCall__2">BlockingUnaryCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Calls<span id="LST97B8A915_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_0?cpp=::|nu=.");</script>AsyncServerStreamingCall<span id="LST97B8A915_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST97B8A915_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Invokes a server streaming call asynchronously.
+            In server streaming scenario, client sends on request and server responds with a stream of responses.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">AsyncServerStreamingCall</span>&lt;TResponse&gt; <span class="identifier">AsyncServerStreamingCall</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>,
+	TRequest <span class="parameter">req</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">AsyncServerStreamingCall</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">call</span> <span class="keyword">As</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">req</span> <span class="keyword">As</span> TRequest
+) <span class="keyword">As</span> <span class="identifier">AsyncServerStreamingCall</span>(<span class="keyword">Of</span> TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">AsyncServerStreamingCall</span>&lt;TResponse&gt;^ <span class="identifier">AsyncServerStreamingCall</span>(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>, 
+	TRequest <span class="parameter">req</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">AsyncServerStreamingCall</span> : 
+        <span class="parameter">call</span> : <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">req</span> : 'TRequest <span class="keyword">-&gt;</span> <span class="identifier">AsyncServerStreamingCall</span>&lt;'TResponse&gt;  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">call</span></dt><dd>Type: <a href="T_Grpc_Core_CallInvocationDetails_2.htm">Grpc.Core<span id="LST97B8A915_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallInvocationDetails</a><span id="LST97B8A915_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST97B8A915_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The call defintion.</dd><dt><span class="parameter">req</span></dt><dd>Type: <span class="selflink"><span class="typeparameter">TRequest</span></span><br />Request message.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Type of request message.</dd><dt><span class="parameter">TResponse</span></dt><dd>The of response messages.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall</a><span id="LST97B8A915_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST97B8A915_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97B8A915_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />A call object providing access to the asynchronous response stream.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Calls.htm">Calls Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..233475428ad7d6b6bb2236e5595b7fb132a31bde
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Calls.AsyncUnaryCall(TRequest, TResponse) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TRequest%2C TResponse) method" /><meta name="System.Keywords" content="Calls.AsyncUnaryCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="Calls.AsyncUnaryCall(Of TRequest%2C TResponse) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Calls.AsyncUnaryCall``2" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Calls.AsyncUnaryCall``2(Grpc.Core.CallInvocationDetails{``0,``1},``0)" /><meta name="Description" content="Invokes a simple remote call asynchronously." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Calls_AsyncUnaryCall__2" /><meta name="guid" content="M_Grpc_Core_Calls_AsyncUnaryCall__2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Calls.htm" title="Calls Methods" tocid="Methods_T_Grpc_Core_Calls">Calls Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncClientStreamingCall__2">AsyncClientStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2">AsyncDuplexStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" title="AsyncServerStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncServerStreamingCall__2">AsyncServerStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" title="AsyncUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncUnaryCall__2">AsyncUnaryCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" title="BlockingUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_BlockingUnaryCall__2">BlockingUnaryCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Calls<span id="LSTD45096DD_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_0?cpp=::|nu=.");</script>AsyncUnaryCall<span id="LSTD45096DD_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTD45096DD_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Invokes a simple remote call asynchronously.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">AsyncUnaryCall</span>&lt;TResponse&gt; <span class="identifier">AsyncUnaryCall</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>,
+	TRequest <span class="parameter">req</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">AsyncUnaryCall</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">call</span> <span class="keyword">As</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">req</span> <span class="keyword">As</span> TRequest
+) <span class="keyword">As</span> <span class="identifier">AsyncUnaryCall</span>(<span class="keyword">Of</span> TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">AsyncUnaryCall</span>&lt;TResponse&gt;^ <span class="identifier">AsyncUnaryCall</span>(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>, 
+	TRequest <span class="parameter">req</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">AsyncUnaryCall</span> : 
+        <span class="parameter">call</span> : <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">req</span> : 'TRequest <span class="keyword">-&gt;</span> <span class="identifier">AsyncUnaryCall</span>&lt;'TResponse&gt;  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">call</span></dt><dd>Type: <a href="T_Grpc_Core_CallInvocationDetails_2.htm">Grpc.Core<span id="LSTD45096DD_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallInvocationDetails</a><span id="LSTD45096DD_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTD45096DD_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The call defintion.</dd><dt><span class="parameter">req</span></dt><dd>Type: <span class="selflink"><span class="typeparameter">TRequest</span></span><br />Request message.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Type of request message.</dd><dt><span class="parameter">TResponse</span></dt><dd>The of response message.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall</a><span id="LSTD45096DD_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTD45096DD_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD45096DD_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />An awaitable call object providing access to the response.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Calls.htm">Calls Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..438ef1d39ca9d854312e452573343f8ff52d4a7e
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Calls.BlockingUnaryCall(TRequest, TResponse) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="BlockingUnaryCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="BlockingUnaryCall(Of TRequest%2C TResponse) method" /><meta name="System.Keywords" content="Calls.BlockingUnaryCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="Calls.BlockingUnaryCall(Of TRequest%2C TResponse) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Calls.BlockingUnaryCall``2" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Calls.BlockingUnaryCall``2(Grpc.Core.CallInvocationDetails{``0,``1},``0)" /><meta name="Description" content="Invokes a simple remote call in a blocking fashion." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Calls_BlockingUnaryCall__2" /><meta name="guid" content="M_Grpc_Core_Calls_BlockingUnaryCall__2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Calls.htm" title="Calls Methods" tocid="Methods_T_Grpc_Core_Calls">Calls Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncClientStreamingCall__2">AsyncClientStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2">AsyncDuplexStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" title="AsyncServerStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncServerStreamingCall__2">AsyncServerStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" title="AsyncUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncUnaryCall__2">AsyncUnaryCall(TRequest, TResponse) Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" title="BlockingUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_BlockingUnaryCall__2">BlockingUnaryCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Calls<span id="LST96EE894_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST96EE894_0?cpp=::|nu=.");</script>BlockingUnaryCall<span id="LST96EE894_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST96EE894_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST96EE894_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST96EE894_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Invokes a simple remote call in a blocking fashion.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> TResponse <span class="identifier">BlockingUnaryCall</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>,
+	TRequest <span class="parameter">req</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">BlockingUnaryCall</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">call</span> <span class="keyword">As</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">req</span> <span class="keyword">As</span> TRequest
+) <span class="keyword">As</span> TResponse</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">static</span> TResponse <span class="identifier">BlockingUnaryCall</span>(
+	<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="parameter">call</span>, 
+	TRequest <span class="parameter">req</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">BlockingUnaryCall</span> : 
+        <span class="parameter">call</span> : <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">req</span> : 'TRequest <span class="keyword">-&gt;</span> 'TResponse  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">call</span></dt><dd>Type: <a href="T_Grpc_Core_CallInvocationDetails_2.htm">Grpc.Core<span id="LST96EE894_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST96EE894_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallInvocationDetails</a><span id="LST96EE894_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST96EE894_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST96EE894_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST96EE894_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The call defintion.</dd><dt><span class="parameter">req</span></dt><dd>Type: <span class="selflink"><span class="typeparameter">TRequest</span></span><br />Request message.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Type of request message.</dd><dt><span class="parameter">TResponse</span></dt><dd>The of response message.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <span class="selflink"><span class="typeparameter">TResponse</span></span><br />The response.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Calls.htm">Calls Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ChannelOption__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ChannelOption__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2cf5522f329225d528f4adbab6dc1f7034baa137
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ChannelOption__ctor.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption Constructor (String, Int32)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ChannelOption.#ctor(System.String,System.Int32)" /><meta name="Description" content="Creates a channel option with an integer value." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ChannelOption__ctor" /><meta name="guid" content="M_Grpc_Core_ChannelOption__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor " tocid="Overload_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor (String, Int32)" tocid="M_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor (String, Int32)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ChannelOption__ctor_1.htm" title="ChannelOption Constructor (String, String)" tocid="M_Grpc_Core_ChannelOption__ctor_1">ChannelOption Constructor (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption Constructor (String, Int32)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a channel option with an integer value.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ChannelOption</span>(
+	<span class="identifier">string</span> <span class="parameter">name</span>,
+	<span class="identifier">int</span> <span class="parameter">intValue</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">name</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">intValue</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ChannelOption</span>(
+	<span class="identifier">String</span>^ <span class="parameter">name</span>, 
+	<span class="identifier">int</span> <span class="parameter">intValue</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">name</span> : <span class="identifier">string</span> * 
+        <span class="parameter">intValue</span> : <span class="identifier">int</span> <span class="keyword">-&gt;</span> <span class="identifier">ChannelOption</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">name</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTB54A1247_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A1247_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Name.</dd><dt><span class="parameter">intValue</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LSTB54A1247_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A1247_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br />Integer value.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_ChannelOption__ctor.htm">ChannelOption Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ChannelOption__ctor_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ChannelOption__ctor_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0cb44f83e9af2e19ab3e7dca5cdf85c169c7f2ba
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ChannelOption__ctor_1.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption Constructor (String, String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ChannelOption.#ctor(System.String,System.String)" /><meta name="Description" content="Creates a channel option with a string value." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ChannelOption__ctor_1" /><meta name="guid" content="M_Grpc_Core_ChannelOption__ctor_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor " tocid="Overload_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor (String, Int32)" tocid="M_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor (String, Int32)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ChannelOption__ctor_1.htm" title="ChannelOption Constructor (String, String)" tocid="M_Grpc_Core_ChannelOption__ctor_1">ChannelOption Constructor (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption Constructor (String, String)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a channel option with a string value.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ChannelOption</span>(
+	<span class="identifier">string</span> <span class="parameter">name</span>,
+	<span class="identifier">string</span> <span class="parameter">stringValue</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">name</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">stringValue</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ChannelOption</span>(
+	<span class="identifier">String</span>^ <span class="parameter">name</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">stringValue</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">name</span> : <span class="identifier">string</span> * 
+        <span class="parameter">stringValue</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">ChannelOption</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">name</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST345CD76_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST345CD76_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Name.</dd><dt><span class="parameter">stringValue</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST345CD76_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST345CD76_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />String value.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_ChannelOption__ctor.htm">ChannelOption Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Channel_ConnectAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Channel_ConnectAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c3dc1a1577d47eba331ef1f287c7d93a4b47f0c2
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Channel_ConnectAsync.htm
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel.ConnectAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ConnectAsync method" /><meta name="System.Keywords" content="Channel.ConnectAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.ConnectAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Channel.ConnectAsync(System.Nullable{System.DateTime})" /><meta name="Description" content="Allows explicitly requesting channel to connect without starting an RPC. Returned task completes once state Ready was seen. If the deadline is reached, or channel enters the FatalFailure state, the task is cancelled." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Channel_ConnectAsync" /><meta name="guid" content="M_Grpc_Core_Channel_ConnectAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Channel.htm" title="Channel Methods" tocid="Methods_T_Grpc_Core_Channel">Channel Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ConnectAsync.htm" title="ConnectAsync Method " tocid="M_Grpc_Core_Channel_ConnectAsync">ConnectAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Channel_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" title="WaitForStateChangedAsync Method " tocid="M_Grpc_Core_Channel_WaitForStateChangedAsync">WaitForStateChangedAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel<span id="LST9E4D95F4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9E4D95F4_0?cpp=::|nu=.");</script>ConnectAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Allows explicitly requesting channel to connect without starting an RPC.
+            Returned task completes once state Ready was seen. If the deadline is reached,
+            or channel enters the FatalFailure state, the task is cancelled.
+            There is no need to call this explicitly unless your use case requires that.
+            Starting an RPC on a new channel will request connection implicitly.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span> <span class="identifier">ConnectAsync</span>(
+	<span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="parameter">deadline</span> = <span class="keyword">null</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">ConnectAsync</span> ( 
+	Optional <span class="parameter">deadline</span> <span class="keyword">As</span> <span class="identifier">Nullable</span>(<span class="keyword">Of</span> <span class="identifier">DateTime</span>) = <span class="keyword">Nothing</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Task</span>^ <span class="identifier">ConnectAsync</span>(
+	<span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="parameter">deadline</span> = <span class="keyword">nullptr</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ConnectAsync</span> : 
+        ?<span class="parameter">deadline</span> : <span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">deadline</span> = defaultArg <span class="identifier">deadline</span> <span class="keyword">null</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">deadline</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/b3h38hb0" target="_blank">System<span id="LST9E4D95F4_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9E4D95F4_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Nullable</a><span id="LST9E4D95F4_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9E4D95F4_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="http://msdn2.microsoft.com/en-us/library/03ybds8y" target="_blank">DateTime</a><span id="LST9E4D95F4_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9E4D95F4_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The deadline. <span class="code">null</span> indicates no deadline.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Channel_ShutdownAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Channel_ShutdownAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f8a04d4f8cfe0039e1c94b8ef4fb0bba96009006
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Channel_ShutdownAsync.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel.ShutdownAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ShutdownAsync method" /><meta name="System.Keywords" content="Channel.ShutdownAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.ShutdownAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Channel.ShutdownAsync" /><meta name="Description" content="Waits until there are no more active calls for this channel and then cleans up resources used by this channel." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Channel_ShutdownAsync" /><meta name="guid" content="M_Grpc_Core_Channel_ShutdownAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Channel.htm" title="Channel Methods" tocid="Methods_T_Grpc_Core_Channel">Channel Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ConnectAsync.htm" title="ConnectAsync Method " tocid="M_Grpc_Core_Channel_ConnectAsync">ConnectAsync Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Channel_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" title="WaitForStateChangedAsync Method " tocid="M_Grpc_Core_Channel_WaitForStateChangedAsync">WaitForStateChangedAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel<span id="LST85C37DE1_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST85C37DE1_0?cpp=::|nu=.");</script>ShutdownAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Waits until there are no more active calls for this channel and then cleans up
+            resources used by this channel.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span> <span class="identifier">ShutdownAsync</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">ShutdownAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Task</span>^ <span class="identifier">ShutdownAsync</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ShutdownAsync</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..92b613f8b6d227e719a876cf4bbf302c4ab7c5ae
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel.WaitForStateChangedAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WaitForStateChangedAsync method" /><meta name="System.Keywords" content="Channel.WaitForStateChangedAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.WaitForStateChangedAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Channel.WaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})" /><meta name="Description" content="Returned tasks completes once channel state has become different from given lastObservedState. If deadline is reached or and error occurs, returned task is cancelled." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Channel_WaitForStateChangedAsync" /><meta name="guid" content="M_Grpc_Core_Channel_WaitForStateChangedAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Channel.htm" title="Channel Methods" tocid="Methods_T_Grpc_Core_Channel">Channel Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ConnectAsync.htm" title="ConnectAsync Method " tocid="M_Grpc_Core_Channel_ConnectAsync">ConnectAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Channel_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" title="WaitForStateChangedAsync Method " tocid="M_Grpc_Core_Channel_WaitForStateChangedAsync">WaitForStateChangedAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel<span id="LST5691ABAE_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5691ABAE_0?cpp=::|nu=.");</script>WaitForStateChangedAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returned tasks completes once channel state has become different from 
+            given lastObservedState. 
+            If deadline is reached or and error occurs, returned task is cancelled.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span> <span class="identifier">WaitForStateChangedAsync</span>(
+	<span class="identifier">ChannelState</span> <span class="parameter">lastObservedState</span>,
+	<span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="parameter">deadline</span> = <span class="keyword">null</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">WaitForStateChangedAsync</span> ( 
+	<span class="parameter">lastObservedState</span> <span class="keyword">As</span> <span class="identifier">ChannelState</span>,
+	Optional <span class="parameter">deadline</span> <span class="keyword">As</span> <span class="identifier">Nullable</span>(<span class="keyword">Of</span> <span class="identifier">DateTime</span>) = <span class="keyword">Nothing</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Task</span>^ <span class="identifier">WaitForStateChangedAsync</span>(
+	<span class="identifier">ChannelState</span> <span class="parameter">lastObservedState</span>, 
+	<span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="parameter">deadline</span> = <span class="keyword">nullptr</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WaitForStateChangedAsync</span> : 
+        <span class="parameter">lastObservedState</span> : <span class="identifier">ChannelState</span> * 
+        ?<span class="parameter">deadline</span> : <span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">deadline</span> = defaultArg <span class="identifier">deadline</span> <span class="keyword">null</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">lastObservedState</span></dt><dd>Type: <a href="T_Grpc_Core_ChannelState.htm">Grpc.Core<span id="LST5691ABAE_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5691ABAE_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ChannelState</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="lastObservedState"/&gt; documentation for "M:Grpc.Core.Channel.WaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})"]</p></dd><dt><span class="parameter">deadline</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/b3h38hb0" target="_blank">System<span id="LST5691ABAE_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5691ABAE_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Nullable</a><span id="LST5691ABAE_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5691ABAE_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="http://msdn2.microsoft.com/en-us/library/03ybds8y" target="_blank">DateTime</a><span id="LST5691ABAE_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5691ABAE_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="deadline"/&gt; documentation for "M:Grpc.Core.Channel.WaitForStateChangedAsync(Grpc.Core.ChannelState,System.Nullable{System.DateTime})"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Channel__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Channel__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fcc5831c797989babf9df6430e7ae9efdfd0a903
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Channel__ctor.htm
@@ -0,0 +1,24 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel Constructor (String, Credentials, IEnumerable(ChannelOption))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Channel.#ctor(System.String,Grpc.Core.Credentials,System.Collections.Generic.IEnumerable{Grpc.Core.ChannelOption})" /><meta name="Description" content="Creates a channel that connects to a specific host. Port will default to 80 for an unsecure channel and to 443 for a secure channel." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Channel__ctor" /><meta name="guid" content="M_Grpc_Core_Channel__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Channel__ctor.htm" title="Channel Constructor " tocid="Overload_Grpc_Core_Channel__ctor">Channel Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel__ctor.htm" title="Channel Constructor (String, Credentials, IEnumerable(ChannelOption))" tocid="M_Grpc_Core_Channel__ctor">Channel Constructor (String, Credentials, IEnumerable(ChannelOption))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel__ctor_1.htm" title="Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))" tocid="M_Grpc_Core_Channel__ctor_1">Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel Constructor (String, Credentials, IEnumerable<span id="LST307ECB37_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST307ECB37_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>ChannelOption<span id="LST307ECB37_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST307ECB37_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a channel that connects to a specific host.
+            Port will default to 80 for an unsecure channel and to 443 for a secure channel.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Channel</span>(
+	<span class="identifier">string</span> <span class="parameter">target</span>,
+	<span class="identifier">Credentials</span> <span class="parameter">credentials</span>,
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>&gt; <span class="parameter">options</span> = <span class="keyword">null</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">target</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">credentials</span> <span class="keyword">As</span> <span class="identifier">Credentials</span>,
+	Optional <span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">ChannelOption</span>) = <span class="keyword">Nothing</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Channel</span>(
+	<span class="identifier">String</span>^ <span class="parameter">target</span>, 
+	<span class="identifier">Credentials</span>^ <span class="parameter">credentials</span>, 
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>^&gt;^ <span class="parameter">options</span> = <span class="keyword">nullptr</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">target</span> : <span class="identifier">string</span> * 
+        <span class="parameter">credentials</span> : <span class="identifier">Credentials</span> * 
+        ?<span class="parameter">options</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>&gt; 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">options</span> = defaultArg <span class="identifier">options</span> <span class="keyword">null</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">Channel</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">target</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST307ECB37_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST307ECB37_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Target of the channel.</dd><dt><span class="parameter">credentials</span></dt><dd>Type: <a href="T_Grpc_Core_Credentials.htm">Grpc.Core<span id="LST307ECB37_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST307ECB37_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Credentials</a><br />Credentials to secure the channel.</dd><dt><span class="parameter">options</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/9eekhta0" target="_blank">System.Collections.Generic<span id="LST307ECB37_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST307ECB37_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IEnumerable</a><span id="LST307ECB37_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST307ECB37_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption</a><span id="LST307ECB37_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST307ECB37_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Channel options.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Channel__ctor.htm">Channel Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Channel__ctor_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Channel__ctor_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f888c880ec9e14b04aa0fb5c57e14a294ac66bf0
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Channel__ctor_1.htm
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Channel.#ctor(System.String,System.Int32,Grpc.Core.Credentials,System.Collections.Generic.IEnumerable{Grpc.Core.ChannelOption})" /><meta name="Description" content="Creates a channel that connects to a specific host and port." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Channel__ctor_1" /><meta name="guid" content="M_Grpc_Core_Channel__ctor_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Channel__ctor.htm" title="Channel Constructor " tocid="Overload_Grpc_Core_Channel__ctor">Channel Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel__ctor.htm" title="Channel Constructor (String, Credentials, IEnumerable(ChannelOption))" tocid="M_Grpc_Core_Channel__ctor">Channel Constructor (String, Credentials, IEnumerable(ChannelOption))</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel__ctor_1.htm" title="Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))" tocid="M_Grpc_Core_Channel__ctor_1">Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel Constructor (String, Int32, Credentials, IEnumerable<span id="LSTA535342_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>ChannelOption<span id="LSTA535342_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a channel that connects to a specific host and port.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Channel</span>(
+	<span class="identifier">string</span> <span class="parameter">host</span>,
+	<span class="identifier">int</span> <span class="parameter">port</span>,
+	<span class="identifier">Credentials</span> <span class="parameter">credentials</span>,
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>&gt; <span class="parameter">options</span> = <span class="keyword">null</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">host</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">port</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
+	<span class="parameter">credentials</span> <span class="keyword">As</span> <span class="identifier">Credentials</span>,
+	Optional <span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">ChannelOption</span>) = <span class="keyword">Nothing</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Channel</span>(
+	<span class="identifier">String</span>^ <span class="parameter">host</span>, 
+	<span class="identifier">int</span> <span class="parameter">port</span>, 
+	<span class="identifier">Credentials</span>^ <span class="parameter">credentials</span>, 
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>^&gt;^ <span class="parameter">options</span> = <span class="keyword">nullptr</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">host</span> : <span class="identifier">string</span> * 
+        <span class="parameter">port</span> : <span class="identifier">int</span> * 
+        <span class="parameter">credentials</span> : <span class="identifier">Credentials</span> * 
+        ?<span class="parameter">options</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>&gt; 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">options</span> = defaultArg <span class="identifier">options</span> <span class="keyword">null</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">Channel</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">host</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTA535342_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />The name or IP address of the host.</dd><dt><span class="parameter">port</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LSTA535342_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br />The port.</dd><dt><span class="parameter">credentials</span></dt><dd>Type: <a href="T_Grpc_Core_Credentials.htm">Grpc.Core<span id="LSTA535342_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Credentials</a><br />Credentials to secure the channel.</dd><dt><span class="parameter">options</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/9eekhta0" target="_blank">System.Collections.Generic<span id="LSTA535342_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IEnumerable</a><span id="LSTA535342_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption</a><span id="LSTA535342_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA535342_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Channel options.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Channel__ctor.htm">Channel Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ClientBase_CreateCall__2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ClientBase_CreateCall__2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..39494dca379182e7af5b1ebcbc29fa94924334ce
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ClientBase_CreateCall__2.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase.CreateCall(TRequest, TResponse) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CreateCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="CreateCall(Of TRequest%2C TResponse) method" /><meta name="System.Keywords" content="ClientBase.CreateCall%3CTRequest%2C TResponse%3E method" /><meta name="System.Keywords" content="ClientBase.CreateCall(Of TRequest%2C TResponse) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.CreateCall``2" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ClientBase.CreateCall``2(Grpc.Core.Method{``0,``1},Grpc.Core.CallOptions)" /><meta name="Description" content="Creates a new call to given method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ClientBase_CreateCall__2" /><meta name="guid" content="M_Grpc_Core_ClientBase_CreateCall__2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ClientBase.htm" title="ClientBase Methods" tocid="Methods_T_Grpc_Core_ClientBase">ClientBase Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ClientBase_CreateCall__2.htm" title="CreateCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_ClientBase_CreateCall__2">CreateCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase<span id="LSTE141A6C3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_0?cpp=::|nu=.");</script>CreateCall<span id="LSTE141A6C3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTE141A6C3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new call to given method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">protected</span> <span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="identifier">CreateCall</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt; <span class="parameter">method</span>,
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Protected</span> <span class="keyword">Function</span> <span class="identifier">CreateCall</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">CallOptions</span>
+) <span class="keyword">As</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">protected</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt; <span class="identifier">CreateCall</span>(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">method</span>, 
+	<span class="identifier">CallOptions</span> <span class="parameter">options</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">CreateCall</span> : 
+        <span class="parameter">method</span> : <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">options</span> : <span class="identifier">CallOptions</span> <span class="keyword">-&gt;</span> <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt;  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_Method_2.htm">Grpc.Core<span id="LSTE141A6C3_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method</a><span id="LSTE141A6C3_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTE141A6C3_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method to invoke.</dd><dt><span class="parameter">options</span></dt><dd>Type: <a href="T_Grpc_Core_CallOptions.htm">Grpc.Core<span id="LSTE141A6C3_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CallOptions</a><br />The call options.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails</a><span id="LSTE141A6C3_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_7?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTE141A6C3_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE141A6C3_8?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The call invocation details.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ClientBase.htm">ClientBase Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ClientBase__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ClientBase__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5bce0afd309a4f300b3815b3f462b5738dff30b1
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ClientBase__ctor.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ClientBase class, constructor" /><meta name="System.Keywords" content="ClientBase.ClientBase constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.ClientBase" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ClientBase.#ctor(Grpc.Core.Channel)" /><meta name="Description" content="Initializes a new instance of ClientBase class." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ClientBase__ctor" /><meta name="guid" content="M_Grpc_Core_ClientBase__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ClientBase__ctor.htm" title="ClientBase Constructor " tocid="M_Grpc_Core_ClientBase__ctor">ClientBase Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ClientBase.htm" title="ClientBase Properties" tocid="Properties_T_Grpc_Core_ClientBase">ClientBase Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ClientBase.htm" title="ClientBase Methods" tocid="Methods_T_Grpc_Core_ClientBase">ClientBase Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of <span class="code">ClientBase</span> class.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ClientBase</span>(
+	<span class="identifier">Channel</span> <span class="parameter">channel</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">channel</span> <span class="keyword">As</span> <span class="identifier">Channel</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ClientBase</span>(
+	<span class="identifier">Channel</span>^ <span class="parameter">channel</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">channel</span> : <span class="identifier">Channel</span> <span class="keyword">-&gt;</span> <span class="identifier">ClientBase</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">channel</span></dt><dd>Type: <a href="T_Grpc_Core_Channel.htm">Grpc.Core<span id="LST6E24B936_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6E24B936_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Channel</a><br />The channel to use for remote call invocation.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ClientBase.htm">ClientBase Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ContextPropagationOptions__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ContextPropagationOptions__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8a0c3a6866e5d5f125f7aaba5246937ce2c2ccc9
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ContextPropagationOptions__ctor.htm
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ContextPropagationOptions class, constructor" /><meta name="System.Keywords" content="ContextPropagationOptions.ContextPropagationOptions constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions.ContextPropagationOptions" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ContextPropagationOptions.#ctor(System.Boolean,System.Boolean)" /><meta name="Description" content="Creates new context propagation options." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ContextPropagationOptions__ctor" /><meta name="guid" content="M_Grpc_Core_ContextPropagationOptions__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ContextPropagationOptions__ctor.htm" title="ContextPropagationOptions Constructor " tocid="M_Grpc_Core_ContextPropagationOptions__ctor">ContextPropagationOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Properties" tocid="Properties_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Methods" tocid="Methods_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Fields" tocid="Fields_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates new context propagation options.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ContextPropagationOptions</span>(
+	<span class="identifier">bool</span> <span class="parameter">propagateDeadline</span> = <span class="keyword">true</span>,
+	<span class="identifier">bool</span> <span class="parameter">propagateCancellation</span> = <span class="keyword">true</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	Optional <span class="parameter">propagateDeadline</span> <span class="keyword">As</span> <span class="identifier">Boolean</span> = <span class="keyword">true</span>,
+	Optional <span class="parameter">propagateCancellation</span> <span class="keyword">As</span> <span class="identifier">Boolean</span> = <span class="keyword">true</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ContextPropagationOptions</span>(
+	<span class="identifier">bool</span> <span class="parameter">propagateDeadline</span> = <span class="keyword">true</span>, 
+	<span class="identifier">bool</span> <span class="parameter">propagateCancellation</span> = <span class="keyword">true</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        ?<span class="parameter">propagateDeadline</span> : <span class="identifier">bool</span> * 
+        ?<span class="parameter">propagateCancellation</span> : <span class="identifier">bool</span> 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">propagateDeadline</span> = defaultArg <span class="identifier">propagateDeadline</span> <span class="keyword">true</span>
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">propagateCancellation</span> = defaultArg <span class="identifier">propagateCancellation</span> <span class="keyword">true</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">ContextPropagationOptions</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">propagateDeadline</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LSTC85C234D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC85C234D_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br />If set to <span class="code">true</span> parent call's deadline will be propagated to the child call.</dd><dt><span class="parameter">propagateCancellation</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LSTC85C234D_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC85C234D_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br />If set to <span class="code">true</span> parent call's cancellation token will be propagated to the child call.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Credentials__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Credentials__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..126e39a55ac57046abc6b9bfc2faf79ad9c31497
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Credentials__ctor.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Credentials Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Credentials class, constructor" /><meta name="System.Keywords" content="Credentials.Credentials constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Credentials.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Credentials.Credentials" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Credentials.#ctor" /><meta name="Description" content="Grpc.Core.Credentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Credentials__ctor" /><meta name="guid" content="M_Grpc_Core_Credentials__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Credentials__ctor.htm" title="Credentials Constructor " tocid="M_Grpc_Core_Credentials__ctor">Credentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Credentials.htm" title="Credentials Properties" tocid="Properties_T_Grpc_Core_Credentials">Credentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Credentials.htm" title="Credentials Methods" tocid="Methods_T_Grpc_Core_Credentials">Credentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Credentials Constructor </td></tr></table><span class="introStyle"></span><div class="summary">Initializes a new instance of the <a href="T_Grpc_Core_Credentials.htm">Credentials</a> class</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">protected</span> <span class="identifier">Credentials</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Protected</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">protected</span>:
+<span class="identifier">Credentials</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Credentials</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Credentials.htm">Credentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm b/doc/ref/csharp/html/html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2ce38bb3eba16970c811f6de8575e69f37290ce9
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GrpcEnvironment.SetLogger Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SetLogger method" /><meta name="System.Keywords" content="GrpcEnvironment.SetLogger method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.GrpcEnvironment.SetLogger" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.GrpcEnvironment.SetLogger(Grpc.Core.Logging.ILogger)" /><meta name="Description" content="Sets the application-wide logger that should be used by gRPC." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_GrpcEnvironment_SetLogger" /><meta name="guid" content="M_Grpc_Core_GrpcEnvironment_SetLogger" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Methods" tocid="Methods_T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_GrpcEnvironment_SetLogger.htm" title="SetLogger Method " tocid="M_Grpc_Core_GrpcEnvironment_SetLogger">SetLogger Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">GrpcEnvironment<span id="LST7784D88D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7784D88D_0?cpp=::|nu=.");</script>SetLogger Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Sets the application-wide logger that should be used by gRPC.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">SetLogger</span>(
+	<span class="identifier">ILogger</span> <span class="parameter">customLogger</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Sub</span> <span class="identifier">SetLogger</span> ( 
+	<span class="parameter">customLogger</span> <span class="keyword">As</span> <span class="identifier">ILogger</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">SetLogger</span>(
+	<span class="identifier">ILogger</span>^ <span class="parameter">customLogger</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">SetLogger</span> : 
+        <span class="parameter">customLogger</span> : <span class="identifier">ILogger</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">customLogger</span></dt><dd>Type: <a href="T_Grpc_Core_Logging_ILogger.htm">Grpc.Core.Logging<span id="LST7784D88D_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7784D88D_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ILogger</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="customLogger"/&gt; documentation for "M:Grpc.Core.GrpcEnvironment.SetLogger(Grpc.Core.Logging.ILogger)"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_GrpcEnvironment.htm">GrpcEnvironment Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..28d348c014391042cb7f47fc8ec1e4353e51bf05
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamWriter(T).WriteAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteAsync method" /><meta name="System.Keywords" content="IAsyncStreamWriter%3CT%3E.WriteAsync method" /><meta name="System.Keywords" content="IAsyncStreamWriter(Of T).WriteAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IAsyncStreamWriter`1.WriteAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.IAsyncStreamWriter`1.WriteAsync(`0)" /><meta name="Description" content="Writes a single asynchronously. Only one write can be pending at a time." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync" /><meta name="guid" content="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm" title="WriteAsync Method " tocid="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync">WriteAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamWriter<span id="LST79DAE08F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79DAE08F_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST79DAE08F_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79DAE08F_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST79DAE08F_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79DAE08F_2?cpp=::|nu=.");</script>WriteAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Writes a single asynchronously. Only one write can be pending at a time.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">Task</span> <span class="identifier">WriteAsync</span>(
+	T <span class="parameter">message</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Function</span> <span class="identifier">WriteAsync</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> T
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="identifier">Task</span>^ <span class="identifier">WriteAsync</span>(
+	T <span class="parameter">message</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">WriteAsync</span> : 
+        <span class="parameter">message</span> : 'T <span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm"><span class="typeparameter">T</span></a><br />the message to be written. Cannot be null.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST79DAE08F_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79DAE08F_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST79DAE08F_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST79DAE08F_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9518f187f890c1c2d0b08d071933985f5f1f8c0b
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IClientStreamWriter(T).CompleteAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CompleteAsync method" /><meta name="System.Keywords" content="IClientStreamWriter%3CT%3E.CompleteAsync method" /><meta name="System.Keywords" content="IClientStreamWriter(Of T).CompleteAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IClientStreamWriter`1.CompleteAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.IClientStreamWriter`1.CompleteAsync" /><meta name="Description" content="Completes/closes the stream. Can only be called once there is no pending write. No writes should follow calling this." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync" /><meta name="guid" content="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm" title="CompleteAsync Method " tocid="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync">CompleteAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IClientStreamWriter<span id="LSTBD430C85_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBD430C85_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTBD430C85_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBD430C85_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTBD430C85_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBD430C85_2?cpp=::|nu=.");</script>CompleteAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Completes/closes the stream. Can only be called once there is no pending write. No writes should follow calling this.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">Task</span> <span class="identifier">CompleteAsync</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Function</span> <span class="identifier">CompleteAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="identifier">Task</span>^ <span class="identifier">CompleteAsync</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">CompleteAsync</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter<span id="LSTBD430C85_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBD430C85_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTBD430C85_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBD430C85_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_KeyCertificatePair__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_KeyCertificatePair__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d0d3deb61f2b35548ebbff3b538760ad73031e3e
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_KeyCertificatePair__ctor.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>KeyCertificatePair Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="KeyCertificatePair class, constructor" /><meta name="System.Keywords" content="KeyCertificatePair.KeyCertificatePair constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.KeyCertificatePair.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.KeyCertificatePair.KeyCertificatePair" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.KeyCertificatePair.#ctor(System.String,System.String)" /><meta name="Description" content="Creates a new certificate chain - private key pair." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_KeyCertificatePair__ctor" /><meta name="guid" content="M_Grpc_Core_KeyCertificatePair__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_KeyCertificatePair__ctor.htm" title="KeyCertificatePair Constructor " tocid="M_Grpc_Core_KeyCertificatePair__ctor">KeyCertificatePair Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Properties" tocid="Properties_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Methods" tocid="Methods_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">KeyCertificatePair Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new certificate chain - private key pair.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">KeyCertificatePair</span>(
+	<span class="identifier">string</span> <span class="parameter">certificateChain</span>,
+	<span class="identifier">string</span> <span class="parameter">privateKey</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">certificateChain</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">privateKey</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">KeyCertificatePair</span>(
+	<span class="identifier">String</span>^ <span class="parameter">certificateChain</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">privateKey</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">certificateChain</span> : <span class="identifier">string</span> * 
+        <span class="parameter">privateKey</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">KeyCertificatePair</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">certificateChain</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST3F6F0F52_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F6F0F52_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />PEM encoded certificate chain.</dd><dt><span class="parameter">privateKey</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST3F6F0F52_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F6F0F52_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />PEM encoded private key.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5e32929e415dfbee4e239eb54cd298bc4e3a43e6
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Debug Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Debug method" /><meta name="System.Keywords" content="ConsoleLogger.Debug method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger.Debug" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.Debug(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Debug." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger_Debug" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger_Debug" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LST26E1A714_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_0?cpp=::|nu=.");</script>Debug Method </td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Debug.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Debug</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Debug</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Debug</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Debug</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Debug</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST26E1A714_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Debug(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LST26E1A714_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_2?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST26E1A714_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LST26E1A714_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_4?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Debug(System.String,System.Object[])"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="M_Grpc_Core_Logging_ILogger_Debug.htm">ILogger<span id="LST26E1A714_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Debug(String, <span id="LST26E1A714_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_6?cpp=array&lt;");</script>Object<span id="LST26E1A714_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST26E1A714_7?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Error.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Error.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6d80286475bb107b1883e138eb665ae2732a8e16
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Error.htm
@@ -0,0 +1,21 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Error Method (Exception, String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.Error(System.Exception,System.String,System.Object[])" /><meta name="Description" content="Logs a message and an associated exception with severity Error." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger_Error" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger_Error" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm" title="Error Method (String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Error_1">Error Method (String, Object[])</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Error">Error Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LST9D02E46D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_0?cpp=::|nu=.");</script>Error Method (Exception, String, <span id="LST9D02E46D_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_1?cpp=array&lt;");</script>Object<span id="LST9D02E46D_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message and an associated exception with severity Error.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">Exception</span> <span class="parameter">exception</span>,
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Error</span> ( 
+	<span class="parameter">exception</span> <span class="keyword">As</span> <span class="identifier">Exception</span>,
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">Exception</span>^ <span class="parameter">exception</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Error</span> : 
+        <span class="parameter">exception</span> : <span class="identifier">Exception</span> * 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Error</span> : 
+        <span class="parameter">exception</span> : <span class="identifier">Exception</span> * 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">exception</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">System<span id="LST9D02E46D_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Exception</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="exception"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Error(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST9D02E46D_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Error(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LST9D02E46D_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_5?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST9D02E46D_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LST9D02E46D_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_7?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Error(System.Exception,System.String,System.Object[])"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="M_Grpc_Core_Logging_ILogger_Error.htm">ILogger<span id="LST9D02E46D_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Error(Exception, String, <span id="LST9D02E46D_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_9?cpp=array&lt;");</script>Object<span id="LST9D02E46D_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9D02E46D_10?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm">Error Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8d154f118b7c4139ae789e47ff58883945a60ed6
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Error Method (String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.Error(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Error." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger_Error_1" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger_Error_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Error">Error Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm" title="Error Method (String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Error_1">Error Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Error">Error Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LSTE99B1AE9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_0?cpp=::|nu=.");</script>Error Method (String, <span id="LSTE99B1AE9_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_1?cpp=array&lt;");</script>Object<span id="LSTE99B1AE9_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Error.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Error</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Error</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Error</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTE99B1AE9_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Error(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LSTE99B1AE9_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTE99B1AE9_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LSTE99B1AE9_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_6?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Error(System.String,System.Object[])"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="M_Grpc_Core_Logging_ILogger_Error_1.htm">ILogger<span id="LSTE99B1AE9_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Error(String, <span id="LSTE99B1AE9_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_8?cpp=array&lt;");</script>Object<span id="LSTE99B1AE9_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE99B1AE9_9?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm">Error Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..66335da42be04b3f4bee4b27c8ad5216929ed6cd
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.ForType(T) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ForType%3CT%3E method" /><meta name="System.Keywords" content="ForType(Of T) method" /><meta name="System.Keywords" content="ConsoleLogger.ForType%3CT%3E method" /><meta name="System.Keywords" content="ConsoleLogger.ForType(Of T) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger.ForType``1" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.ForType``1" /><meta name="Description" content="Returns a logger associated with the specified type." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger_ForType__1" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger_ForType__1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Error">Error Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LST896B66EA_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST896B66EA_0?cpp=::|nu=.");</script>ForType<span id="LST896B66EA_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST896B66EA_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST896B66EA_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST896B66EA_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns a logger associated with the specified type.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ILogger</span> <span class="identifier">ForType</span>&lt;T&gt;()
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">ForType</span>(<span class="keyword">Of</span> T) <span class="keyword">As</span> <span class="identifier">ILogger</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">virtual</span> <span class="identifier">ILogger</span>^ <span class="identifier">ForType</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">ForType</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">ILogger</span> 
+<span class="keyword">override</span> <span class="identifier">ForType</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">ILogger</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.ForType``1"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Logging_ILogger.htm">ILogger</a><h4 class="subHeading">Implements</h4><a href="M_Grpc_Core_Logging_ILogger_ForType__1.htm">ILogger<span id="LST896B66EA_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST896B66EA_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ForType<span id="LST896B66EA_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST896B66EA_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST896B66EA_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST896B66EA_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST896B66EA_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST896B66EA_6?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fa46de948fc9ed59f94fe05bafedc33d78577d7a
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Info Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Info method" /><meta name="System.Keywords" content="ConsoleLogger.Info method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger.Info" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.Info(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Info." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger_Info" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger_Info" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LSTEB5CFBFF_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_0?cpp=::|nu=.");</script>Info Method </td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Info.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Info</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Info</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Info</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Info</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Info</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTEB5CFBFF_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Info(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LSTEB5CFBFF_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_2?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTEB5CFBFF_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LSTEB5CFBFF_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_4?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Info(System.String,System.Object[])"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="M_Grpc_Core_Logging_ILogger_Info.htm">ILogger<span id="LSTEB5CFBFF_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Info(String, <span id="LSTEB5CFBFF_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_6?cpp=array&lt;");</script>Object<span id="LSTEB5CFBFF_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEB5CFBFF_7?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Warning.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Warning.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3f8c17d05ece96513d6df2c47d5c780761106719
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Warning.htm
@@ -0,0 +1,21 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Warning Method (Exception, String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.Warning(System.Exception,System.String,System.Object[])" /><meta name="Description" content="Logs a message and an associated exception with severity Warning." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger_Warning" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger_Warning" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm" title="Warning Method (String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Warning_1">Warning Method (String, Object[])</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LSTA31A3D17_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_0?cpp=::|nu=.");</script>Warning Method (Exception, String, <span id="LSTA31A3D17_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_1?cpp=array&lt;");</script>Object<span id="LSTA31A3D17_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message and an associated exception with severity Warning.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">Exception</span> <span class="parameter">exception</span>,
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Warning</span> ( 
+	<span class="parameter">exception</span> <span class="keyword">As</span> <span class="identifier">Exception</span>,
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">Exception</span>^ <span class="parameter">exception</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Warning</span> : 
+        <span class="parameter">exception</span> : <span class="identifier">Exception</span> * 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Warning</span> : 
+        <span class="parameter">exception</span> : <span class="identifier">Exception</span> * 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">exception</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">System<span id="LSTA31A3D17_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Exception</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="exception"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Warning(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTA31A3D17_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Warning(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LSTA31A3D17_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_5?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTA31A3D17_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LSTA31A3D17_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_7?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Warning(System.Exception,System.String,System.Object[])"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="M_Grpc_Core_Logging_ILogger_Warning.htm">ILogger<span id="LSTA31A3D17_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Warning(Exception, String, <span id="LSTA31A3D17_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_9?cpp=array&lt;");</script>Object<span id="LSTA31A3D17_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA31A3D17_10?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm">Warning Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e8ee33276680ae3a9d7a14329d2a74d7f093079d
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Warning Method (String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.Warning(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Warning." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger_Warning_1" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger_Warning_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm" title="Warning Method (String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Warning_1">Warning Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LST86B07CEF_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_0?cpp=::|nu=.");</script>Warning Method (String, <span id="LST86B07CEF_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_1?cpp=array&lt;");</script>Object<span id="LST86B07CEF_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Warning.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Warning</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Warning</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Warning</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST86B07CEF_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Warning(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LST86B07CEF_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST86B07CEF_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LST86B07CEF_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_6?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ConsoleLogger.Warning(System.String,System.Object[])"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="M_Grpc_Core_Logging_ILogger_Warning_1.htm">ILogger<span id="LST86B07CEF_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Warning(String, <span id="LST86B07CEF_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_8?cpp=array&lt;");</script>Object<span id="LST86B07CEF_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST86B07CEF_9?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm">Warning Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e1b5025397906e734e63ae2b0296a9357e006048
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ConsoleLogger class, constructor" /><meta name="System.Keywords" content="ConsoleLogger.ConsoleLogger constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger.ConsoleLogger" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ConsoleLogger.#ctor" /><meta name="Description" content="Creates a console logger not associated to any specific type." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ConsoleLogger__ctor" /><meta name="guid" content="M_Grpc_Core_Logging_ConsoleLogger__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger__ctor.htm" title="ConsoleLogger Constructor " tocid="M_Grpc_Core_Logging_ConsoleLogger__ctor">ConsoleLogger Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger Constructor </td></tr></table><span class="introStyle"></span><div class="summary">Creates a console logger not associated to any specific type.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ConsoleLogger</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ConsoleLogger</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">ConsoleLogger</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Debug.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Debug.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c4a15c5b5afab4c0e25afa4c41fdf0cae0b02261
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Debug.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Debug Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Debug method" /><meta name="System.Keywords" content="ILogger.Debug method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ILogger.Debug" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ILogger.Debug(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Debug." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ILogger_Debug" /><meta name="guid" content="M_Grpc_Core_Logging_ILogger_Debug" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ILogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ILogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ILogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ILogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ILogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LSTA1973726_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA1973726_0?cpp=::|nu=.");</script>Debug Method </td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Debug.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Debug</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Sub</span> <span class="identifier">Debug</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Debug</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Debug</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTA1973726_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA1973726_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Debug(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LSTA1973726_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA1973726_2?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTA1973726_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA1973726_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LSTA1973726_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA1973726_4?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Debug(System.String,System.Object[])"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Error.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Error.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6f5cbfa1431fb841b62a8c37ba8ad74c60117c8b
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Error.htm
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Error Method (Exception, String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ILogger.Error(System.Exception,System.String,System.Object[])" /><meta name="Description" content="Logs a message and an associated exception with severity Error." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ILogger_Error" /><meta name="guid" content="M_Grpc_Core_Logging_ILogger_Error" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ILogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Error_1.htm" title="Error Method (String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Error_1">Error Method (String, Object[])</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Error">Error Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LST2E5BBEEB_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_0?cpp=::|nu=.");</script>Error Method (Exception, String, <span id="LST2E5BBEEB_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_1?cpp=array&lt;");</script>Object<span id="LST2E5BBEEB_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message and an associated exception with severity Error.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">Exception</span> <span class="parameter">exception</span>,
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Sub</span> <span class="identifier">Error</span> ( 
+	<span class="parameter">exception</span> <span class="keyword">As</span> <span class="identifier">Exception</span>,
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">Exception</span>^ <span class="parameter">exception</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Error</span> : 
+        <span class="parameter">exception</span> : <span class="identifier">Exception</span> * 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">exception</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">System<span id="LST2E5BBEEB_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Exception</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="exception"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Error(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST2E5BBEEB_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Error(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LST2E5BBEEB_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_5?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST2E5BBEEB_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LST2E5BBEEB_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2E5BBEEB_7?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Error(System.Exception,System.String,System.Object[])"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ILogger_Error.htm">Error Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Error_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Error_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8c8e5e3425afc42afe7dc6533b4ebca865c39d6b
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Error_1.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Error Method (String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ILogger.Error(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Error." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ILogger_Error_1" /><meta name="guid" content="M_Grpc_Core_Logging_ILogger_Error_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ILogger_Error">Error Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Error_1.htm" title="Error Method (String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Error_1">Error Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Error">Error Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LSTC3566983_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3566983_0?cpp=::|nu=.");</script>Error Method (String, <span id="LSTC3566983_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3566983_1?cpp=array&lt;");</script>Object<span id="LSTC3566983_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3566983_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Error.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Sub</span> <span class="identifier">Error</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Error</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Error</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTC3566983_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3566983_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Error(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LSTC3566983_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3566983_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTC3566983_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3566983_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LSTC3566983_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3566983_6?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Error(System.String,System.Object[])"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ILogger_Error.htm">Error Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_ForType__1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_ForType__1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b95f904aeed6a508bd1ae977256645be2a72b69a
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_ForType__1.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.ForType(T) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ForType%3CT%3E method" /><meta name="System.Keywords" content="ForType(Of T) method" /><meta name="System.Keywords" content="ILogger.ForType%3CT%3E method" /><meta name="System.Keywords" content="ILogger.ForType(Of T) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ILogger.ForType``1" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ILogger.ForType``1" /><meta name="Description" content="Returns a logger associated with the specified type." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ILogger_ForType__1" /><meta name="guid" content="M_Grpc_Core_Logging_ILogger_ForType__1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ILogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ILogger_Error">Error Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ILogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ILogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ILogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LSTE7C1D7D4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7C1D7D4_0?cpp=::|nu=.");</script>ForType<span id="LSTE7C1D7D4_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7C1D7D4_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTE7C1D7D4_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7C1D7D4_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">Returns a logger associated with the specified type.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">ILogger</span> <span class="identifier">ForType</span>&lt;T&gt;()
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Function</span> <span class="identifier">ForType</span>(<span class="keyword">Of</span> T) <span class="keyword">As</span> <span class="identifier">ILogger</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="identifier">ILogger</span>^ <span class="identifier">ForType</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">ForType</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">ILogger</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.ForType``1"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Logging_ILogger.htm">ILogger</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Info.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Info.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cba47673b989858c857859b5354f141a76e8696b
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Info.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Info Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Info method" /><meta name="System.Keywords" content="ILogger.Info method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ILogger.Info" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ILogger.Info(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Info." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ILogger_Info" /><meta name="guid" content="M_Grpc_Core_Logging_ILogger_Info" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ILogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ILogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ILogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ILogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ILogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LST1B144BB9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B144BB9_0?cpp=::|nu=.");</script>Info Method </td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Info.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Info</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Sub</span> <span class="identifier">Info</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Info</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Info</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST1B144BB9_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B144BB9_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Info(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LST1B144BB9_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B144BB9_2?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST1B144BB9_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B144BB9_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LST1B144BB9_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B144BB9_4?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Info(System.String,System.Object[])"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Warning.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Warning.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c103df8940831eca9c66b1f30b475fdd00e9aa72
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Warning.htm
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Warning Method (Exception, String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ILogger.Warning(System.Exception,System.String,System.Object[])" /><meta name="Description" content="Logs a message and an associated exception with severity Warning." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ILogger_Warning" /><meta name="guid" content="M_Grpc_Core_Logging_ILogger_Warning" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ILogger_Warning">Warning Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Warning_1.htm" title="Warning Method (String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Warning_1">Warning Method (String, Object[])</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Warning">Warning Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LST8B4E23D9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_0?cpp=::|nu=.");</script>Warning Method (Exception, String, <span id="LST8B4E23D9_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_1?cpp=array&lt;");</script>Object<span id="LST8B4E23D9_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message and an associated exception with severity Warning.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">Exception</span> <span class="parameter">exception</span>,
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Sub</span> <span class="identifier">Warning</span> ( 
+	<span class="parameter">exception</span> <span class="keyword">As</span> <span class="identifier">Exception</span>,
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">Exception</span>^ <span class="parameter">exception</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Warning</span> : 
+        <span class="parameter">exception</span> : <span class="identifier">Exception</span> * 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">exception</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">System<span id="LST8B4E23D9_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Exception</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="exception"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Warning(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST8B4E23D9_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Warning(System.Exception,System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LST8B4E23D9_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_5?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST8B4E23D9_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LST8B4E23D9_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B4E23D9_7?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Warning(System.Exception,System.String,System.Object[])"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ILogger_Warning.htm">Warning Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Warning_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Warning_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a2abe0f8ed15c2ead8ab492b65ea367d8305fa58
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Logging_ILogger_Warning_1.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Warning Method (String, Object[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Logging.ILogger.Warning(System.String,System.Object[])" /><meta name="Description" content="Logs a message with severity Warning." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="M_Grpc_Core_Logging_ILogger_Warning_1" /><meta name="guid" content="M_Grpc_Core_Logging_ILogger_Warning_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ILogger_Warning">Warning Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Warning_1.htm" title="Warning Method (String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Warning_1">Warning Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Warning">Warning Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LST39121515_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39121515_0?cpp=::|nu=.");</script>Warning Method (String, <span id="LST39121515_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39121515_1?cpp=array&lt;");</script>Object<span id="LST39121515_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39121515_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">Logs a message with severity Warning.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">string</span> <span class="parameter">message</span>,
+	<span class="keyword">params</span> <span class="identifier">Object</span>[] <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Sub</span> <span class="identifier">Warning</span> ( 
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="keyword">ParamArray</span> <span class="parameter">formatArgs</span> <span class="keyword">As</span> <span class="identifier">Object</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">void</span> <span class="identifier">Warning</span>(
+	<span class="identifier">String</span>^ <span class="parameter">message</span>, 
+	... <span class="keyword">array</span>&lt;<span class="identifier">Object</span>^&gt;^ <span class="parameter">formatArgs</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Warning</span> : 
+        <span class="parameter">message</span> : <span class="identifier">string</span> * 
+        <span class="parameter">formatArgs</span> : <span class="identifier">Object</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST39121515_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39121515_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="message"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Warning(System.String,System.Object[])"]</p></dd><dt><span class="parameter">formatArgs</span></dt><dd>Type: <span id="LST39121515_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39121515_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST39121515_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39121515_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><span id="LST39121515_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39121515_6?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="formatArgs"/&gt; documentation for "M:Grpc.Core.Logging.ILogger.Warning(System.String,System.Object[])"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Logging_ILogger_Warning.htm">Warning Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Marshaller_1__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Marshaller_1__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4bf979904b6b0e3678cfb9861aabd8e0107a24d9
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Marshaller_1__ctor.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshaller(T) Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Marshaller%3CT%3E structure, constructor" /><meta name="System.Keywords" content="Marshaller(Of T) structure, constructor" /><meta name="System.Keywords" content="Marshaller%3CT%3E.Marshaller constructor" /><meta name="System.Keywords" content="Marshaller(Of T).Marshaller constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshaller`1.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshaller`1.Marshaller" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Marshaller`1.#ctor(System.Func{`0,System.Byte[]},System.Func{System.Byte[],`0})" /><meta name="Description" content="Initializes a new marshaller." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Marshaller_1__ctor" /><meta name="guid" content="M_Grpc_Core_Marshaller_1__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Marshaller_1__ctor.htm" title="Marshaller(T) Constructor " tocid="M_Grpc_Core_Marshaller_1__ctor">Marshaller(T) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Properties" tocid="Properties_T_Grpc_Core_Marshaller_1">Marshaller(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Methods" tocid="Methods_T_Grpc_Core_Marshaller_1">Marshaller(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshaller<span id="LSTA9F49B0_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTA9F49B0_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new marshaller.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Marshaller</span>(
+	<span class="identifier">Func</span>&lt;T, <span class="identifier">byte</span>[]&gt; <span class="parameter">serializer</span>,
+	<span class="identifier">Func</span>&lt;<span class="identifier">byte</span>[], T&gt; <span class="parameter">deserializer</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">serializer</span> <span class="keyword">As</span> <span class="identifier">Func</span>(<span class="keyword">Of</span> T, <span class="identifier">Byte</span>()),
+	<span class="parameter">deserializer</span> <span class="keyword">As</span> <span class="identifier">Func</span>(<span class="keyword">Of</span> <span class="identifier">Byte</span>(), T)
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Marshaller</span>(
+	<span class="identifier">Func</span>&lt;T, <span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^&gt;^ <span class="parameter">serializer</span>, 
+	<span class="identifier">Func</span>&lt;<span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^, T&gt;^ <span class="parameter">deserializer</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">serializer</span> : <span class="identifier">Func</span>&lt;'T, <span class="identifier">byte</span>[]&gt; * 
+        <span class="parameter">deserializer</span> : <span class="identifier">Func</span>&lt;<span class="identifier">byte</span>[], 'T&gt; <span class="keyword">-&gt;</span> <span class="identifier">Marshaller</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">serializer</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb549151" target="_blank">System<span id="LSTA9F49B0_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Func</a><span id="LSTA9F49B0_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Marshaller_1.htm"><span class="typeparameter">T</span></a>, <span id="LSTA9F49B0_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">Byte</a><span id="LSTA9F49B0_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_5?cpp=&gt;|vb=()|nu=[]");</script><span id="LSTA9F49B0_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Function that will be used to serialize messages.</dd><dt><span class="parameter">deserializer</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb549151" target="_blank">System<span id="LSTA9F49B0_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Func</a><span id="LSTA9F49B0_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span id="LSTA9F49B0_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_9?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">Byte</a><span id="LSTA9F49B0_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_10?cpp=&gt;|vb=()|nu=[]");</script>, <a href="T_Grpc_Core_Marshaller_1.htm"><span class="typeparameter">T</span></a><span id="LSTA9F49B0_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Function that will be used to deserialize messages.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LSTA9F49B0_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_12?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTA9F49B0_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9F49B0_13?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Marshallers_Create__1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Marshallers_Create__1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..61818afdb67a4588cd48d9503d9d5b92cab4bced
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Marshallers_Create__1.htm
@@ -0,0 +1,18 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshallers.Create(T) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Create%3CT%3E method" /><meta name="System.Keywords" content="Create(Of T) method" /><meta name="System.Keywords" content="Marshallers.Create%3CT%3E method" /><meta name="System.Keywords" content="Marshallers.Create(Of T) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshallers.Create``1" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})" /><meta name="Description" content="Creates a marshaller from specified serializer and deserializer." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Marshallers_Create__1" /><meta name="guid" content="M_Grpc_Core_Marshallers_Create__1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Marshallers.htm" title="Marshallers Methods" tocid="Methods_T_Grpc_Core_Marshallers">Marshallers Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Marshallers_Create__1.htm" title="Create(T) Method " tocid="M_Grpc_Core_Marshallers_Create__1">Create(T) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshallers<span id="LST736DAF32_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_0?cpp=::|nu=.");</script>Create<span id="LST736DAF32_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST736DAF32_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a marshaller from specified serializer and deserializer.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">Marshaller</span>&lt;T&gt; <span class="identifier">Create</span>&lt;T&gt;(
+	<span class="identifier">Func</span>&lt;T, <span class="identifier">byte</span>[]&gt; <span class="parameter">serializer</span>,
+	<span class="identifier">Func</span>&lt;<span class="identifier">byte</span>[], T&gt; <span class="parameter">deserializer</span>
+)
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">Create</span>(<span class="keyword">Of</span> T) ( 
+	<span class="parameter">serializer</span> <span class="keyword">As</span> <span class="identifier">Func</span>(<span class="keyword">Of</span> T, <span class="identifier">Byte</span>()),
+	<span class="parameter">deserializer</span> <span class="keyword">As</span> <span class="identifier">Func</span>(<span class="keyword">Of</span> <span class="identifier">Byte</span>(), T)
+) <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> T)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">static</span> <span class="identifier">Marshaller</span>&lt;T&gt; <span class="identifier">Create</span>(
+	<span class="identifier">Func</span>&lt;T, <span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^&gt;^ <span class="parameter">serializer</span>, 
+	<span class="identifier">Func</span>&lt;<span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^, T&gt;^ <span class="parameter">deserializer</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">Create</span> : 
+        <span class="parameter">serializer</span> : <span class="identifier">Func</span>&lt;'T, <span class="identifier">byte</span>[]&gt; * 
+        <span class="parameter">deserializer</span> : <span class="identifier">Func</span>&lt;<span class="identifier">byte</span>[], 'T&gt; <span class="keyword">-&gt;</span> <span class="identifier">Marshaller</span>&lt;'T&gt; 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">serializer</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb549151" target="_blank">System<span id="LST736DAF32_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Func</a><span id="LST736DAF32_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span>, <span id="LST736DAF32_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_5?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">Byte</a><span id="LST736DAF32_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_6?cpp=&gt;|vb=()|nu=[]");</script><span id="LST736DAF32_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="serializer"/&gt; documentation for "M:Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})"]</p></dd><dt><span class="parameter">deserializer</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb549151" target="_blank">System<span id="LST736DAF32_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Func</a><span id="LST736DAF32_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_9?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span id="LST736DAF32_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_10?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">Byte</a><span id="LST736DAF32_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_11?cpp=&gt;|vb=()|nu=[]");</script>, <span class="selflink"><span class="typeparameter">T</span></span><span id="LST736DAF32_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_12?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="deserializer"/&gt; documentation for "M:Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})"]</p></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Marshallers.Create``1(System.Func{``0,System.Byte[]},System.Func{System.Byte[],``0})"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller</a><span id="LST736DAF32_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LST736DAF32_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736DAF32_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshallers.htm">Marshallers Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c8137c6c117cdb36ac78b29f9509f06542db5860
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Add Method (Metadata.Entry)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Add(Grpc.Core.Metadata.Entry)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.Add(Grpc.Core.Metadata.Entry)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Add" /><meta name="guid" content="M_Grpc_Core_Metadata_Add" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add.htm" title="Add Method (Metadata.Entry)" tocid="M_Grpc_Core_Metadata_Add">Add Method (Metadata.Entry)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_1.htm" title="Add Method (String, Byte[])" tocid="M_Grpc_Core_Metadata_Add_1">Add Method (String, Byte[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_2.htm" title="Add Method (String, String)" tocid="M_Grpc_Core_Metadata_Add_2">Add Method (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTA6FD5627_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_0?cpp=::|nu=.");</script>Add Method (Metadata<span id="LSTA6FD5627_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_1?cpp=::|nu=.");</script>Entry)</td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.Add(Grpc.Core.Metadata.Entry)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">Metadata<span id="LSTA6FD5627_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Add</span> ( 
+	<span class="parameter">item</span> <span class="keyword">As</span> <span class="identifier">Metadata<span id="LSTA6FD5627_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">Metadata<span id="LSTA6FD5627_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Add</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTA6FD5627_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Add</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTA6FD5627_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">item</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata_Entry.htm">Grpc.Core<span id="LSTA6FD5627_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata<span id="LSTA6FD5627_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="item"/&gt; documentation for "M:Grpc.Core.Metadata.Add(Grpc.Core.Metadata.Entry)"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/63ywd54z" target="_blank">ICollection<span id="LSTA6FD5627_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_9?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTA6FD5627_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_10?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LSTA6FD5627_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA6FD5627_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Add(T)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Metadata_Add.htm">Add Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6240e9bbe20302bd57a9564436755a5115a31cd2
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add_1.htm
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Add Method (String, Byte[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Add(System.String,System.Byte[])" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.Add(System.String,System.Byte[])" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Add_1" /><meta name="guid" content="M_Grpc_Core_Metadata_Add_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add.htm" title="Add Method (Metadata.Entry)" tocid="M_Grpc_Core_Metadata_Add">Add Method (Metadata.Entry)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_1.htm" title="Add Method (String, Byte[])" tocid="M_Grpc_Core_Metadata_Add_1">Add Method (String, Byte[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_2.htm" title="Add Method (String, String)" tocid="M_Grpc_Core_Metadata_Add_2">Add Method (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST8D3F14CE_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8D3F14CE_0?cpp=::|nu=.");</script>Add Method (String, <span id="LST8D3F14CE_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8D3F14CE_1?cpp=array&lt;");</script>Byte<span id="LST8D3F14CE_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8D3F14CE_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.Add(System.String,System.Byte[])"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">string</span> <span class="parameter">key</span>,
+	<span class="identifier">byte</span>[] <span class="parameter">valueBytes</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Add</span> ( 
+	<span class="parameter">key</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">valueBytes</span> <span class="keyword">As</span> <span class="identifier">Byte</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">String</span>^ <span class="parameter">key</span>, 
+	<span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^ <span class="parameter">valueBytes</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Add</span> : 
+        <span class="parameter">key</span> : <span class="identifier">string</span> * 
+        <span class="parameter">valueBytes</span> : <span class="identifier">byte</span>[] <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">key</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST8D3F14CE_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8D3F14CE_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="key"/&gt; documentation for "M:Grpc.Core.Metadata.Add(System.String,System.Byte[])"]</p></dd><dt><span class="parameter">valueBytes</span></dt><dd>Type: <span id="LST8D3F14CE_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8D3F14CE_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">System<span id="LST8D3F14CE_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8D3F14CE_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Byte</a><span id="LST8D3F14CE_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8D3F14CE_6?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="valueBytes"/&gt; documentation for "M:Grpc.Core.Metadata.Add(System.String,System.Byte[])"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Metadata_Add.htm">Add Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add_2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..54030d4c1c04676968f9203d94f8fec4ec9b7a9e
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Add_2.htm
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Add Method (String, String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Add(System.String,System.String)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.Add(System.String,System.String)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Add_2" /><meta name="guid" content="M_Grpc_Core_Metadata_Add_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add.htm" title="Add Method (Metadata.Entry)" tocid="M_Grpc_Core_Metadata_Add">Add Method (Metadata.Entry)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_1.htm" title="Add Method (String, Byte[])" tocid="M_Grpc_Core_Metadata_Add_1">Add Method (String, Byte[])</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_2.htm" title="Add Method (String, String)" tocid="M_Grpc_Core_Metadata_Add_2">Add Method (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTB5FDEA85_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB5FDEA85_0?cpp=::|nu=.");</script>Add Method (String, String)</td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.Add(System.String,System.String)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">string</span> <span class="parameter">key</span>,
+	<span class="identifier">string</span> <span class="parameter">value</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Add</span> ( 
+	<span class="parameter">key</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">value</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">String</span>^ <span class="parameter">key</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">value</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Add</span> : 
+        <span class="parameter">key</span> : <span class="identifier">string</span> * 
+        <span class="parameter">value</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">key</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTB5FDEA85_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB5FDEA85_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="key"/&gt; documentation for "M:Grpc.Core.Metadata.Add(System.String,System.String)"]</p></dd><dt><span class="parameter">value</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTB5FDEA85_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB5FDEA85_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="value"/&gt; documentation for "M:Grpc.Core.Metadata.Add(System.String,System.String)"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Metadata_Add.htm">Add Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Clear.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Clear.htm
new file mode 100644
index 0000000000000000000000000000000000000000..63b79b103e9f6440a777e69d17ce39c738375b0e
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Clear.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Clear Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Clear method" /><meta name="System.Keywords" content="Metadata.Clear method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Clear" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Clear" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.Clear" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Clear" /><meta name="guid" content="M_Grpc_Core_Metadata_Clear" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST9CAE7D56_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9CAE7D56_0?cpp=::|nu=.");</script>Clear Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.Clear"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Clear</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Clear</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Clear</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Clear</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Clear</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/5axy4fbh" target="_blank">ICollection<span id="LST9CAE7D56_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9CAE7D56_1?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9CAE7D56_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9CAE7D56_2?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LST9CAE7D56_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9CAE7D56_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Clear<span id="LST9CAE7D56_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9CAE7D56_4?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Contains.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Contains.htm
new file mode 100644
index 0000000000000000000000000000000000000000..25711d28fa59fda9edbf709c815dbc9fbfd1957e
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Contains.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Contains Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Contains method" /><meta name="System.Keywords" content="Metadata.Contains method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Contains" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Contains(Grpc.Core.Metadata.Entry)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.Contains(Grpc.Core.Metadata.Entry)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Contains" /><meta name="guid" content="M_Grpc_Core_Metadata_Contains" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTD24E38ED_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_0?cpp=::|nu=.");</script>Contains Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.Contains(Grpc.Core.Metadata.Entry)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">bool</span> <span class="identifier">Contains</span>(
+	<span class="identifier">Metadata<span id="LSTD24E38ED_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">Contains</span> ( 
+	<span class="parameter">item</span> <span class="keyword">As</span> <span class="identifier">Metadata<span id="LSTD24E38ED_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>
+) <span class="keyword">As</span> <span class="identifier">Boolean</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">bool</span> <span class="identifier">Contains</span>(
+	<span class="identifier">Metadata<span id="LSTD24E38ED_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Contains</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTD24E38ED_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="identifier">bool</span> 
+<span class="keyword">override</span> <span class="identifier">Contains</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTD24E38ED_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="identifier">bool</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">item</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata_Entry.htm">Grpc.Core<span id="LSTD24E38ED_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata<span id="LSTD24E38ED_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="item"/&gt; documentation for "M:Grpc.Core.Metadata.Contains(Grpc.Core.Metadata.Entry)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/k5cf1d56" target="_blank">ICollection<span id="LSTD24E38ED_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTD24E38ED_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LSTD24E38ED_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD24E38ED_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Contains(T)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_CopyTo.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_CopyTo.htm
new file mode 100644
index 0000000000000000000000000000000000000000..151dc2e4cd66207ef98adcad33053c452838d51e
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_CopyTo.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.CopyTo Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CopyTo method" /><meta name="System.Keywords" content="Metadata.CopyTo method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.CopyTo" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.CopyTo(Grpc.Core.Metadata.Entry[],System.Int32)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.CopyTo(Grpc.Core.Metadata.Entry[],System.Int32)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_CopyTo" /><meta name="guid" content="M_Grpc_Core_Metadata_CopyTo" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST9AE6E237_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_0?cpp=::|nu=.");</script>CopyTo Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.CopyTo(Grpc.Core.Metadata.Entry[],System.Int32)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">CopyTo</span>(
+	<span class="identifier">Metadata<span id="LST9AE6E237_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>[] <span class="parameter">array</span>,
+	<span class="identifier">int</span> <span class="parameter">arrayIndex</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">CopyTo</span> ( 
+	<span class="parameter">array</span> <span class="keyword">As</span> <span class="identifier">Metadata<span id="LST9AE6E237_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>(),
+	<span class="parameter">arrayIndex</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">CopyTo</span>(
+	<span class="keyword">array</span>&lt;<span class="identifier">Metadata<span id="LST9AE6E237_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;^ <span class="parameter">array</span>, 
+	<span class="identifier">int</span> <span class="parameter">arrayIndex</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">CopyTo</span> : 
+        <span class="parameter">array</span> : <span class="identifier">Metadata<span id="LST9AE6E237_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>[] * 
+        <span class="parameter">arrayIndex</span> : <span class="identifier">int</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">CopyTo</span> : 
+        <span class="parameter">array</span> : <span class="identifier">Metadata<span id="LST9AE6E237_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>[] * 
+        <span class="parameter">arrayIndex</span> : <span class="identifier">int</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">array</span></dt><dd>Type: <span id="LST9AE6E237_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_6?cpp=array&lt;");</script><a href="T_Grpc_Core_Metadata_Entry.htm">Grpc.Core<span id="LST9AE6E237_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata<span id="LST9AE6E237_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><span id="LST9AE6E237_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_9?cpp=&gt;|vb=()|nu=[]");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="array"/&gt; documentation for "M:Grpc.Core.Metadata.CopyTo(Grpc.Core.Metadata.Entry[],System.Int32)"]</p></dd><dt><span class="parameter">arrayIndex</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LST9AE6E237_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="arrayIndex"/&gt; documentation for "M:Grpc.Core.Metadata.CopyTo(Grpc.Core.Metadata.Entry[],System.Int32)"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/0efx51xw" target="_blank">ICollection<span id="LST9AE6E237_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_11?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9AE6E237_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_12?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LST9AE6E237_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_13?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>CopyTo(<span id="LST9AE6E237_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_14?cpp=array&lt;");</script>T<span id="LST9AE6E237_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AE6E237_15?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>, Int32)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry_ToString.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry_ToString.htm
new file mode 100644
index 0000000000000000000000000000000000000000..88c335739a8cb8ebc4bb33a2ed9200725d46b166
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry_ToString.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry.ToString Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ToString method" /><meta name="System.Keywords" content="Metadata.Entry.ToString method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.ToString" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Entry.ToString" /><meta name="Description" content="Returns a that represents the current ." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Entry_ToString" /><meta name="guid" content="M_Grpc_Core_Metadata_Entry_ToString" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata_Entry.htm" title="Entry Methods" tocid="Methods_T_Grpc_Core_Metadata_Entry">Entry Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry_ToString.htm" title="ToString Method " tocid="M_Grpc_Core_Metadata_Entry_ToString">ToString Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST510AC259_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST510AC259_0?cpp=::|nu=.");</script>Entry<span id="LST510AC259_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST510AC259_1?cpp=::|nu=.");</script>ToString Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST510AC259_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST510AC259_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">override</span> <span class="identifier">string</span> <span class="identifier">ToString</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overrides</span> <span class="keyword">Function</span> <span class="identifier">ToString</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">String</span>^ <span class="identifier">ToString</span>() <span class="keyword">override</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">ToString</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">string</span> 
+<span class="keyword">override</span> <span class="identifier">ToString</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">string</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST510AC259_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST510AC259_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..775e8b5a942d29191df493c889462bbc3a080359
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry__ctor.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry Constructor (String, Byte[])</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Entry.#ctor(System.String,System.Byte[])" /><meta name="Description" content="Initializes a new instance of the struct with a binary value." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Entry__ctor" /><meta name="guid" content="M_Grpc_Core_Metadata_Entry__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Entry__ctor.htm" title="Entry Constructor " tocid="Overload_Grpc_Core_Metadata_Entry__ctor">Entry Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry__ctor.htm" title="Metadata.Entry Constructor (String, Byte[])" tocid="M_Grpc_Core_Metadata_Entry__ctor">Metadata.Entry Constructor (String, Byte[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry__ctor_1.htm" title="Metadata.Entry Constructor (String, String)" tocid="M_Grpc_Core_Metadata_Entry__ctor_1">Metadata.Entry Constructor (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTBEFDA85C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_0?cpp=::|nu=.");</script>Entry Constructor (String, <span id="LSTBEFDA85C_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_1?cpp=array&lt;");</script>Byte<span id="LSTBEFDA85C_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_2?cpp=&gt;|vb=()|nu=[]");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LSTBEFDA85C_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a> struct with a binary value.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Entry</span>(
+	<span class="identifier">string</span> <span class="parameter">key</span>,
+	<span class="identifier">byte</span>[] <span class="parameter">valueBytes</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">key</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">valueBytes</span> <span class="keyword">As</span> <span class="identifier">Byte</span>()
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Entry</span>(
+	<span class="identifier">String</span>^ <span class="parameter">key</span>, 
+	<span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^ <span class="parameter">valueBytes</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">key</span> : <span class="identifier">string</span> * 
+        <span class="parameter">valueBytes</span> : <span class="identifier">byte</span>[] <span class="keyword">-&gt;</span> <span class="identifier">Entry</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">key</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTBEFDA85C_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Metadata key, needs to have suffix indicating a binary valued metadata entry.</dd><dt><span class="parameter">valueBytes</span></dt><dd>Type: <span id="LSTBEFDA85C_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_5?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">System<span id="LSTBEFDA85C_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Byte</a><span id="LSTBEFDA85C_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_7?cpp=&gt;|vb=()|nu=[]");</script><br />Value bytes.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LSTBEFDA85C_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Metadata_Entry__ctor.htm">Metadata<span id="LSTBEFDA85C_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBEFDA85C_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry__ctor_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry__ctor_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..355545e1ac8c29e809ad5022470d707c4bd558d3
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Entry__ctor_1.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry Constructor (String, String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Entry.#ctor(System.String,System.String)" /><meta name="Description" content="Initializes a new instance of the struct holding an ASCII value." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Entry__ctor_1" /><meta name="guid" content="M_Grpc_Core_Metadata_Entry__ctor_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Entry__ctor.htm" title="Entry Constructor " tocid="Overload_Grpc_Core_Metadata_Entry__ctor">Entry Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry__ctor.htm" title="Metadata.Entry Constructor (String, Byte[])" tocid="M_Grpc_Core_Metadata_Entry__ctor">Metadata.Entry Constructor (String, Byte[])</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry__ctor_1.htm" title="Metadata.Entry Constructor (String, String)" tocid="M_Grpc_Core_Metadata_Entry__ctor_1">Metadata.Entry Constructor (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTEBD28067_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBD28067_0?cpp=::|nu=.");</script>Entry Constructor (String, String)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LSTEBD28067_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBD28067_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a> struct holding an ASCII value.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Entry</span>(
+	<span class="identifier">string</span> <span class="parameter">key</span>,
+	<span class="identifier">string</span> <span class="parameter">value</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">key</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">value</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Entry</span>(
+	<span class="identifier">String</span>^ <span class="parameter">key</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">value</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">key</span> : <span class="identifier">string</span> * 
+        <span class="parameter">value</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">Entry</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">key</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTEBD28067_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBD28067_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Metadata key, must not use suffix indicating a binary valued metadata entry.</dd><dt><span class="parameter">value</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTEBD28067_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBD28067_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Value string. Only ASCII characters are allowed.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LSTEBD28067_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBD28067_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Metadata_Entry__ctor.htm">Metadata<span id="LSTEBD28067_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBD28067_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_GetEnumerator.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_GetEnumerator.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a8720d73a1438090e427e2c3e714f09c49c2c029
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_GetEnumerator.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.GetEnumerator Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetEnumerator method" /><meta name="System.Keywords" content="Metadata.GetEnumerator method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.GetEnumerator" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.GetEnumerator" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.GetEnumerator" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_GetEnumerator" /><meta name="guid" content="M_Grpc_Core_Metadata_GetEnumerator" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST72131FD7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_0?cpp=::|nu=.");</script>GetEnumerator Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.GetEnumerator"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">Metadata<span id="LST72131FD7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt; <span class="identifier">GetEnumerator</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetEnumerator</span> <span class="keyword">As</span> <span class="identifier">IEnumerator</span>(<span class="keyword">Of</span> <span class="identifier">Metadata<span id="LST72131FD7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">Metadata<span id="LST72131FD7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;^ <span class="identifier">GetEnumerator</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">GetEnumerator</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">Metadata<span id="LST72131FD7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt; 
+<span class="keyword">override</span> <span class="identifier">GetEnumerator</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">Metadata<span id="LST72131FD7_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt; </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/78dfe2yb" target="_blank">IEnumerator</a><span id="LST72131FD7_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST72131FD7_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><span id="LST72131FD7_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_8?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/s793z9y2" target="_blank">IEnumerable<span id="LST72131FD7_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_9?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST72131FD7_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_10?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LST72131FD7_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GetEnumerator<span id="LST72131FD7_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72131FD7_12?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_IndexOf.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_IndexOf.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e1791e72315abc9482f4f1a99b3207c59b466eeb
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_IndexOf.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.IndexOf Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IndexOf method" /><meta name="System.Keywords" content="Metadata.IndexOf method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.IndexOf" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.IndexOf(Grpc.Core.Metadata.Entry)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.IndexOf(Grpc.Core.Metadata.Entry)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_IndexOf" /><meta name="guid" content="M_Grpc_Core_Metadata_IndexOf" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST107B9B5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_0?cpp=::|nu=.");</script>IndexOf Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.IndexOf(Grpc.Core.Metadata.Entry)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">IndexOf</span>(
+	<span class="identifier">Metadata<span id="LST107B9B5_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">IndexOf</span> ( 
+	<span class="parameter">item</span> <span class="keyword">As</span> <span class="identifier">Metadata<span id="LST107B9B5_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>
+) <span class="keyword">As</span> <span class="identifier">Integer</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">int</span> <span class="identifier">IndexOf</span>(
+	<span class="identifier">Metadata<span id="LST107B9B5_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">IndexOf</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LST107B9B5_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="identifier">int</span> 
+<span class="keyword">override</span> <span class="identifier">IndexOf</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LST107B9B5_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="identifier">int</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">item</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata_Entry.htm">Grpc.Core<span id="LST107B9B5_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata<span id="LST107B9B5_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="item"/&gt; documentation for "M:Grpc.Core.Metadata.IndexOf(Grpc.Core.Metadata.Entry)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/3w0148af" target="_blank">IList<span id="LST107B9B5_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST107B9B5_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LST107B9B5_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST107B9B5_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IndexOf(T)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Insert.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Insert.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a6f0cfd1639c864481010fd34bbec45710f9e9ad
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Insert.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Insert Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Insert method" /><meta name="System.Keywords" content="Metadata.Insert method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Insert" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Insert(System.Int32,Grpc.Core.Metadata.Entry)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.Insert(System.Int32,Grpc.Core.Metadata.Entry)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Insert" /><meta name="guid" content="M_Grpc_Core_Metadata_Insert" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTDAE97622_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_0?cpp=::|nu=.");</script>Insert Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.Insert(System.Int32,Grpc.Core.Metadata.Entry)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Insert</span>(
+	<span class="identifier">int</span> <span class="parameter">index</span>,
+	<span class="identifier">Metadata<span id="LSTDAE97622_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Insert</span> ( 
+	<span class="parameter">index</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
+	<span class="parameter">item</span> <span class="keyword">As</span> <span class="identifier">Metadata<span id="LSTDAE97622_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">Insert</span>(
+	<span class="identifier">int</span> <span class="parameter">index</span>, 
+	<span class="identifier">Metadata<span id="LSTDAE97622_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Insert</span> : 
+        <span class="parameter">index</span> : <span class="identifier">int</span> * 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTDAE97622_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">Insert</span> : 
+        <span class="parameter">index</span> : <span class="identifier">int</span> * 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTDAE97622_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">index</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LSTDAE97622_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="index"/&gt; documentation for "M:Grpc.Core.Metadata.Insert(System.Int32,Grpc.Core.Metadata.Entry)"]</p></dd><dt><span class="parameter">item</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata_Entry.htm">Grpc.Core<span id="LSTDAE97622_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata<span id="LSTDAE97622_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="item"/&gt; documentation for "M:Grpc.Core.Metadata.Insert(System.Int32,Grpc.Core.Metadata.Entry)"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/8zsfbxz8" target="_blank">IList<span id="LSTDAE97622_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_9?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTDAE97622_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_10?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LSTDAE97622_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE97622_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Insert(Int32, T)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Remove.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Remove.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fda57bc4583c6541f25c79720024fafa74f00850
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_Remove.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Remove Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Remove method" /><meta name="System.Keywords" content="Metadata.Remove method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Remove" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.Remove(Grpc.Core.Metadata.Entry)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.Remove(Grpc.Core.Metadata.Entry)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_Remove" /><meta name="guid" content="M_Grpc_Core_Metadata_Remove" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTF942BBA0_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_0?cpp=::|nu=.");</script>Remove Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.Remove(Grpc.Core.Metadata.Entry)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">bool</span> <span class="identifier">Remove</span>(
+	<span class="identifier">Metadata<span id="LSTF942BBA0_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">Remove</span> ( 
+	<span class="parameter">item</span> <span class="keyword">As</span> <span class="identifier">Metadata<span id="LSTF942BBA0_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>
+) <span class="keyword">As</span> <span class="identifier">Boolean</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">bool</span> <span class="identifier">Remove</span>(
+	<span class="identifier">Metadata<span id="LSTF942BBA0_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">item</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Remove</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTF942BBA0_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="identifier">bool</span> 
+<span class="keyword">override</span> <span class="identifier">Remove</span> : 
+        <span class="parameter">item</span> : <span class="identifier">Metadata<span id="LSTF942BBA0_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">-&gt;</span> <span class="identifier">bool</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">item</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata_Entry.htm">Grpc.Core<span id="LSTF942BBA0_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata<span id="LSTF942BBA0_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="item"/&gt; documentation for "M:Grpc.Core.Metadata.Remove(Grpc.Core.Metadata.Entry)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/bye7h94w" target="_blank">ICollection<span id="LSTF942BBA0_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTF942BBA0_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LSTF942BBA0_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF942BBA0_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Remove(T)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_RemoveAt.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_RemoveAt.htm
new file mode 100644
index 0000000000000000000000000000000000000000..519eac63b72cbacbe9ebf387093fd76b3aa0cdee
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata_RemoveAt.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.RemoveAt Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RemoveAt method" /><meta name="System.Keywords" content="Metadata.RemoveAt method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.RemoveAt" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.RemoveAt(System.Int32)" /><meta name="Description" content="summaryM:Grpc.Core.Metadata.RemoveAt(System.Int32)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata_RemoveAt" /><meta name="guid" content="M_Grpc_Core_Metadata_RemoveAt" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST39A81B3A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39A81B3A_0?cpp=::|nu=.");</script>RemoveAt Method </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "M:Grpc.Core.Metadata.RemoveAt(System.Int32)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">RemoveAt</span>(
+	<span class="identifier">int</span> <span class="parameter">index</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">RemoveAt</span> ( 
+	<span class="parameter">index</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">void</span> <span class="identifier">RemoveAt</span>(
+	<span class="identifier">int</span> <span class="parameter">index</span>
+) <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">RemoveAt</span> : 
+        <span class="parameter">index</span> : <span class="identifier">int</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+<span class="keyword">override</span> <span class="identifier">RemoveAt</span> : 
+        <span class="parameter">index</span> : <span class="identifier">int</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">index</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LST39A81B3A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39A81B3A_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="index"/&gt; documentation for "M:Grpc.Core.Metadata.RemoveAt(System.Int32)"]</p></dd></dl><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/c93ab5c9" target="_blank">IList<span id="LST39A81B3A_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39A81B3A_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST39A81B3A_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39A81B3A_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LST39A81B3A_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39A81B3A_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>RemoveAt(Int32)</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Metadata__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..844e6135cc2d02bb7c8597e8b24dd22b4cf2bc05
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Metadata__ctor.htm
@@ -0,0 +1,4 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Metadata class, constructor" /><meta name="System.Keywords" content="Metadata.Metadata constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Metadata" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Metadata.#ctor" /><meta name="Description" content="Initializes a new instance of Metadata." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Metadata__ctor" /><meta name="guid" content="M_Grpc_Core_Metadata__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata__ctor.htm" title="Metadata Constructor " tocid="M_Grpc_Core_Metadata__ctor">Metadata Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata.htm" title="Metadata Properties" tocid="Properties_T_Grpc_Core_Metadata">Metadata Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Metadata.htm" title="Metadata Fields" tocid="Fields_T_Grpc_Core_Metadata">Metadata Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of <span class="code">Metadata</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Metadata</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Metadata</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Method_2__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Method_2__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7708571728c357f346d4136b7f9f135e2d39e819
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Method_2__ctor.htm
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse) Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E class, constructor" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse) class, constructor" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E.Method constructor" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse).Method constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.Method" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Method`2.#ctor(Grpc.Core.MethodType,System.String,System.String,Grpc.Core.Marshaller{`0},Grpc.Core.Marshaller{`1})" /><meta name="Description" content="Initializes a new instance of the Method class." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Method_2__ctor" /><meta name="guid" content="M_Grpc_Core_Method_2__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Method_2__ctor.htm" title="Method(TRequest, TResponse) Constructor " tocid="M_Grpc_Core_Method_2__ctor">Method(TRequest, TResponse) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LSTA90ABCA2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA90ABCA2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of the <span class="code">Method</span> class.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Method</span>(
+	<span class="identifier">MethodType</span> <span class="parameter">type</span>,
+	<span class="identifier">string</span> <span class="parameter">serviceName</span>,
+	<span class="identifier">string</span> <span class="parameter">name</span>,
+	<span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="parameter">requestMarshaller</span>,
+	<span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="parameter">responseMarshaller</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">type</span> <span class="keyword">As</span> <span class="identifier">MethodType</span>,
+	<span class="parameter">serviceName</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">name</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">requestMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TRequest),
+	<span class="parameter">responseMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TResponse)
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Method</span>(
+	<span class="identifier">MethodType</span> <span class="parameter">type</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">serviceName</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">name</span>, 
+	<span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="parameter">requestMarshaller</span>, 
+	<span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="parameter">responseMarshaller</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">type</span> : <span class="identifier">MethodType</span> * 
+        <span class="parameter">serviceName</span> : <span class="identifier">string</span> * 
+        <span class="parameter">name</span> : <span class="identifier">string</span> * 
+        <span class="parameter">requestMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TRequest&gt; * 
+        <span class="parameter">responseMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TResponse&gt; <span class="keyword">-&gt;</span> <span class="identifier">Method</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">type</span></dt><dd>Type: <a href="T_Grpc_Core_MethodType.htm">Grpc.Core<span id="LSTA90ABCA2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>MethodType</a><br />Type of method.</dd><dt><span class="parameter">serviceName</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTA90ABCA2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Name of service this method belongs to.</dd><dt><span class="parameter">name</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTA90ABCA2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Unqualified name of the method.</dd><dt><span class="parameter">requestMarshaller</span></dt><dd>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Grpc.Core<span id="LSTA90ABCA2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Marshaller</a><span id="LSTA90ABCA2_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Method_2.htm"><span class="typeparameter">TRequest</span></a><span id="LSTA90ABCA2_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Marshaller used for request messages.</dd><dt><span class="parameter">responseMarshaller</span></dt><dd>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Grpc.Core<span id="LSTA90ABCA2_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Marshaller</a><span id="LSTA90ABCA2_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_9?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Method_2.htm"><span class="typeparameter">TResponse</span></a><span id="LSTA90ABCA2_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_10?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Marshaller used for response messages.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LSTA90ABCA2_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_11?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA90ABCA2_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA90ABCA2_12?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_RpcException__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_RpcException__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0eacf485d3c514b2e62a2e00b1bde25fa7559325
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_RpcException__ctor.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException Constructor (Status)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.RpcException.#ctor(Grpc.Core.Status)" /><meta name="Description" content="Creates a new RpcException associated with given status." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_RpcException__ctor" /><meta name="guid" content="M_Grpc_Core_RpcException__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor " tocid="Overload_Grpc_Core_RpcException__ctor">RpcException Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor (Status)" tocid="M_Grpc_Core_RpcException__ctor">RpcException Constructor (Status)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_RpcException__ctor_1.htm" title="RpcException Constructor (Status, String)" tocid="M_Grpc_Core_RpcException__ctor_1">RpcException Constructor (Status, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException Constructor (Status)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new <span class="code">RpcException</span> associated with given status.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">RpcException</span>(
+	<span class="identifier">Status</span> <span class="parameter">status</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">status</span> <span class="keyword">As</span> <span class="identifier">Status</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">RpcException</span>(
+	<span class="identifier">Status</span> <span class="parameter">status</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">status</span> : <span class="identifier">Status</span> <span class="keyword">-&gt;</span> <span class="identifier">RpcException</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">status</span></dt><dd>Type: <a href="T_Grpc_Core_Status.htm">Grpc.Core<span id="LST84587763_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST84587763_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Status</a><br />Resulting status of a call.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_RpcException.htm">RpcException Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_RpcException__ctor.htm">RpcException Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_RpcException__ctor_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_RpcException__ctor_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d1611a2c41624a232c020b7af306d8057dfe55dd
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_RpcException__ctor_1.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException Constructor (Status, String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.RpcException.#ctor(Grpc.Core.Status,System.String)" /><meta name="Description" content="Creates a new RpcException associated with given status and message." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_RpcException__ctor_1" /><meta name="guid" content="M_Grpc_Core_RpcException__ctor_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor " tocid="Overload_Grpc_Core_RpcException__ctor">RpcException Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor (Status)" tocid="M_Grpc_Core_RpcException__ctor">RpcException Constructor (Status)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_RpcException__ctor_1.htm" title="RpcException Constructor (Status, String)" tocid="M_Grpc_Core_RpcException__ctor_1">RpcException Constructor (Status, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException Constructor (Status, String)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new <span class="code">RpcException</span> associated with given status and message.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">RpcException</span>(
+	<span class="identifier">Status</span> <span class="parameter">status</span>,
+	<span class="identifier">string</span> <span class="parameter">message</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">status</span> <span class="keyword">As</span> <span class="identifier">Status</span>,
+	<span class="parameter">message</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">RpcException</span>(
+	<span class="identifier">Status</span> <span class="parameter">status</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">message</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">status</span> : <span class="identifier">Status</span> * 
+        <span class="parameter">message</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">RpcException</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">status</span></dt><dd>Type: <a href="T_Grpc_Core_Status.htm">Grpc.Core<span id="LSTFBC91421_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFBC91421_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Status</a><br />Resulting status of a call.</dd><dt><span class="parameter">message</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTFBC91421_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFBC91421_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />The exception message.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_RpcException.htm">RpcException Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_RpcException__ctor.htm">RpcException Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..40fbe7c30e2404a577f12fb8a1fad2c3bfa44416
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.CreatePropagationToken Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CreatePropagationToken method" /><meta name="System.Keywords" content="ServerCallContext.CreatePropagationToken method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.CreatePropagationToken" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerCallContext.CreatePropagationToken(Grpc.Core.ContextPropagationOptions)" /><meta name="Description" content="Creates a propagation token to be used to propagate call context to a child call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerCallContext_CreatePropagationToken" /><meta name="guid" content="M_Grpc_Core_ServerCallContext_CreatePropagationToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Methods" tocid="Methods_T_Grpc_Core_ServerCallContext">ServerCallContext Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm" title="CreatePropagationToken Method " tocid="M_Grpc_Core_ServerCallContext_CreatePropagationToken">CreatePropagationToken Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm" title="WriteResponseHeadersAsync Method " tocid="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync">WriteResponseHeadersAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LSTCF5DA64A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCF5DA64A_0?cpp=::|nu=.");</script>CreatePropagationToken Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a propagation token to be used to propagate call context to a child call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ContextPropagationToken</span> <span class="identifier">CreatePropagationToken</span>(
+	<span class="identifier">ContextPropagationOptions</span> <span class="parameter">options</span> = <span class="keyword">null</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">CreatePropagationToken</span> ( 
+	Optional <span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">ContextPropagationOptions</span> = <span class="keyword">Nothing</span>
+) <span class="keyword">As</span> <span class="identifier">ContextPropagationToken</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ContextPropagationToken</span>^ <span class="identifier">CreatePropagationToken</span>(
+	<span class="identifier">ContextPropagationOptions</span>^ <span class="parameter">options</span> = <span class="keyword">nullptr</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">CreatePropagationToken</span> : 
+        ?<span class="parameter">options</span> : <span class="identifier">ContextPropagationOptions</span> 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">options</span> = defaultArg <span class="identifier">options</span> <span class="keyword">null</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">ContextPropagationToken</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">options</span> (Optional)</dt><dd>Type: <a href="T_Grpc_Core_ContextPropagationOptions.htm">Grpc.Core<span id="LSTCF5DA64A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCF5DA64A_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ContextPropagationOptions</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="options"/&gt; documentation for "M:Grpc.Core.ServerCallContext.CreatePropagationToken(Grpc.Core.ContextPropagationOptions)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_ContextPropagationToken.htm">ContextPropagationToken</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b62606fafd8996561f3534cbd3b3ae268eeb80c4
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.WriteResponseHeadersAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteResponseHeadersAsync method" /><meta name="System.Keywords" content="ServerCallContext.WriteResponseHeadersAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.WriteResponseHeadersAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerCallContext.WriteResponseHeadersAsync(Grpc.Core.Metadata)" /><meta name="Description" content="Asynchronously sends response headers for the current call to the client. This method may only be invoked once for each call and needs to be invoked before any response messages are written." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync" /><meta name="guid" content="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Methods" tocid="Methods_T_Grpc_Core_ServerCallContext">ServerCallContext Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm" title="CreatePropagationToken Method " tocid="M_Grpc_Core_ServerCallContext_CreatePropagationToken">CreatePropagationToken Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm" title="WriteResponseHeadersAsync Method " tocid="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync">WriteResponseHeadersAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LSTCC9C7C69_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCC9C7C69_0?cpp=::|nu=.");</script>WriteResponseHeadersAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Asynchronously sends response headers for the current call to the client. This method may only be invoked once for each call and needs to be invoked
+            before any response messages are written. Writing the first response message implicitly sends empty response headers if <span class="code">WriteResponseHeadersAsync</span> haven't
+            been called yet.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span> <span class="identifier">WriteResponseHeadersAsync</span>(
+	<span class="identifier">Metadata</span> <span class="parameter">responseHeaders</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">WriteResponseHeadersAsync</span> ( 
+	<span class="parameter">responseHeaders</span> <span class="keyword">As</span> <span class="identifier">Metadata</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Task</span>^ <span class="identifier">WriteResponseHeadersAsync</span>(
+	<span class="identifier">Metadata</span>^ <span class="parameter">responseHeaders</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WriteResponseHeadersAsync</span> : 
+        <span class="parameter">responseHeaders</span> : <span class="identifier">Metadata</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">responseHeaders</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata.htm">Grpc.Core<span id="LSTCC9C7C69_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCC9C7C69_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata</a><br />The response headers to send.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a><br />The task that finished once response headers have been written.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerCredentials__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerCredentials__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ec8b030d85ea53334171016cf34bab4e020a2cbb
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerCredentials__ctor.htm
@@ -0,0 +1,2 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCredentials Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerCredentials class, constructor" /><meta name="System.Keywords" content="ServerCredentials.ServerCredentials constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCredentials.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCredentials.ServerCredentials" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerCredentials.#ctor" /><meta name="Description" content="Grpc.Core.ServerCredentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerCredentials__ctor" /><meta name="guid" content="M_Grpc_Core_ServerCredentials__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCredentials__ctor.htm" title="ServerCredentials Constructor " tocid="M_Grpc_Core_ServerCredentials__ctor">ServerCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Properties" tocid="Properties_T_Grpc_Core_ServerCredentials">ServerCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Methods" tocid="Methods_T_Grpc_Core_ServerCredentials">ServerCredentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCredentials Constructor </td></tr></table><span class="introStyle"></span><div class="summary">Initializes a new instance of the <a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials</a> class</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">protected</span> <span class="identifier">ServerCredentials</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Protected</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">protected</span>:
+<span class="identifier">ServerCredentials</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">ServerCredentials</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerPort__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerPort__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4d29fd3c5b08bbe5a79a7387d295cac8737fb8f8
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerPort__ctor.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerPort class, constructor" /><meta name="System.Keywords" content="ServerPort.ServerPort constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.ServerPort" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerPort.#ctor(System.String,System.Int32,Grpc.Core.ServerCredentials)" /><meta name="Description" content="Creates a new port on which server should listen." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerPort__ctor" /><meta name="guid" content="M_Grpc_Core_ServerPort__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerPort__ctor.htm" title="ServerPort Constructor " tocid="M_Grpc_Core_ServerPort__ctor">ServerPort Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ServerPort.htm" title="ServerPort Methods" tocid="Methods_T_Grpc_Core_ServerPort">ServerPort Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ServerPort.htm" title="ServerPort Fields" tocid="Fields_T_Grpc_Core_ServerPort">ServerPort Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new port on which server should listen.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ServerPort</span>(
+	<span class="identifier">string</span> <span class="parameter">host</span>,
+	<span class="identifier">int</span> <span class="parameter">port</span>,
+	<span class="identifier">ServerCredentials</span> <span class="parameter">credentials</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">host</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">port</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
+	<span class="parameter">credentials</span> <span class="keyword">As</span> <span class="identifier">ServerCredentials</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ServerPort</span>(
+	<span class="identifier">String</span>^ <span class="parameter">host</span>, 
+	<span class="identifier">int</span> <span class="parameter">port</span>, 
+	<span class="identifier">ServerCredentials</span>^ <span class="parameter">credentials</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">host</span> : <span class="identifier">string</span> * 
+        <span class="parameter">port</span> : <span class="identifier">int</span> * 
+        <span class="parameter">credentials</span> : <span class="identifier">ServerCredentials</span> <span class="keyword">-&gt;</span> <span class="identifier">ServerPort</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">host</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST6079785F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6079785F_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />the host</dd><dt><span class="parameter">port</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LST6079785F_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6079785F_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br />the port. If zero, an unused port is chosen automatically.</dd><dt><span class="parameter">credentials</span></dt><dd>Type: <a href="T_Grpc_Core_ServerCredentials.htm">Grpc.Core<span id="LST6079785F_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6079785F_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCredentials</a><br />credentials to use to secure this port.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <br />The port on which server will be listening.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2fadac3cf89e9ff8fff6bff7a2b83d2e1ca62a73
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ClientStreamingServerMethod{``0,``1})" /><meta name="Description" content="Adds a definitions for a client streaming method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2" /><meta name="guid" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" title="AddMethod Method " tocid="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod">AddMethod Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LST4448590B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_0?cpp=::|nu=.");</script>Builder<span id="LST4448590B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_1?cpp=::|nu=.");</script>AddMethod<span id="LST4448590B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST4448590B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (Method<span id="LST4448590B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST4448590B_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ClientStreamingServerMethod<span id="LST4448590B_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST4448590B_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Adds a definitions for a client streaming method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ServerServiceDefinition<span id="LST4448590B_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span> <span class="identifier">AddMethod</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt; <span class="parameter">method</span>,
+	<span class="identifier">ClientStreamingServerMethod</span>&lt;TRequest, TResponse&gt; <span class="parameter">handler</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">AddMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">handler</span> <span class="keyword">As</span> <span class="identifier">ClientStreamingServerMethod</span>(<span class="keyword">Of</span> TRequest, TResponse)
+) <span class="keyword">As</span> <span class="identifier">ServerServiceDefinition<span id="LST4448590B_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="identifier">ServerServiceDefinition<span id="LST4448590B_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>^ <span class="identifier">AddMethod</span>(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">method</span>, 
+	<span class="identifier">ClientStreamingServerMethod</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">handler</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">AddMethod</span> : 
+        <span class="parameter">method</span> : <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">handler</span> : <span class="identifier">ClientStreamingServerMethod</span>&lt;'TRequest, 'TResponse&gt; <span class="keyword">-&gt;</span> <span class="identifier">ServerServiceDefinition<span id="LST4448590B_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_Method_2.htm">Grpc.Core<span id="LST4448590B_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method</a><span id="LST4448590B_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST4448590B_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method.</dd><dt><span class="parameter">handler</span></dt><dd>Type: <a href="T_Grpc_Core_ClientStreamingServerMethod_2.htm">Grpc.Core<span id="LST4448590B_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_15?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ClientStreamingServerMethod</a><span id="LST4448590B_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_16?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST4448590B_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_17?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method handler.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>The request message class.</dd><dt><span class="parameter">TResponse</span></dt><dd>The response message class.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST4448590B_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_18?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a><br />This builder instance.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST4448590B_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4448590B_19?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm">AddMethod Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..da7d825115a5fd827fbf761fc2cbf0df8cc660c7
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.DuplexStreamingServerMethod{``0,``1})" /><meta name="Description" content="Adds a definitions for a bidirectional streaming method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1" /><meta name="guid" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" title="AddMethod Method " tocid="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod">AddMethod Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LST36F972AE_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_0?cpp=::|nu=.");</script>Builder<span id="LST36F972AE_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_1?cpp=::|nu=.");</script>AddMethod<span id="LST36F972AE_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST36F972AE_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (Method<span id="LST36F972AE_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST36F972AE_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, DuplexStreamingServerMethod<span id="LST36F972AE_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST36F972AE_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Adds a definitions for a bidirectional streaming method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ServerServiceDefinition<span id="LST36F972AE_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span> <span class="identifier">AddMethod</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt; <span class="parameter">method</span>,
+	<span class="identifier">DuplexStreamingServerMethod</span>&lt;TRequest, TResponse&gt; <span class="parameter">handler</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">AddMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">handler</span> <span class="keyword">As</span> <span class="identifier">DuplexStreamingServerMethod</span>(<span class="keyword">Of</span> TRequest, TResponse)
+) <span class="keyword">As</span> <span class="identifier">ServerServiceDefinition<span id="LST36F972AE_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="identifier">ServerServiceDefinition<span id="LST36F972AE_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>^ <span class="identifier">AddMethod</span>(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">method</span>, 
+	<span class="identifier">DuplexStreamingServerMethod</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">handler</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">AddMethod</span> : 
+        <span class="parameter">method</span> : <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">handler</span> : <span class="identifier">DuplexStreamingServerMethod</span>&lt;'TRequest, 'TResponse&gt; <span class="keyword">-&gt;</span> <span class="identifier">ServerServiceDefinition<span id="LST36F972AE_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_Method_2.htm">Grpc.Core<span id="LST36F972AE_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method</a><span id="LST36F972AE_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST36F972AE_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method.</dd><dt><span class="parameter">handler</span></dt><dd>Type: <a href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm">Grpc.Core<span id="LST36F972AE_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_15?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>DuplexStreamingServerMethod</a><span id="LST36F972AE_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_16?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST36F972AE_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_17?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method handler.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>The request message class.</dd><dt><span class="parameter">TResponse</span></dt><dd>The response message class.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST36F972AE_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_18?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a><br />This builder instance.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST36F972AE_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST36F972AE_19?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm">AddMethod Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9e8a832ba5274ab88f17c78319def572f85a809d
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.ServerStreamingServerMethod{``0,``1})" /><meta name="Description" content="Adds a definitions for a server streaming method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2" /><meta name="guid" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" title="AddMethod Method " tocid="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod">AddMethod Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LSTA856FEF7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_0?cpp=::|nu=.");</script>Builder<span id="LSTA856FEF7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_1?cpp=::|nu=.");</script>AddMethod<span id="LSTA856FEF7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA856FEF7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (Method<span id="LSTA856FEF7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA856FEF7_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ServerStreamingServerMethod<span id="LSTA856FEF7_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA856FEF7_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Adds a definitions for a server streaming method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ServerServiceDefinition<span id="LSTA856FEF7_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span> <span class="identifier">AddMethod</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt; <span class="parameter">method</span>,
+	<span class="identifier">ServerStreamingServerMethod</span>&lt;TRequest, TResponse&gt; <span class="parameter">handler</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">AddMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">handler</span> <span class="keyword">As</span> <span class="identifier">ServerStreamingServerMethod</span>(<span class="keyword">Of</span> TRequest, TResponse)
+) <span class="keyword">As</span> <span class="identifier">ServerServiceDefinition<span id="LSTA856FEF7_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="identifier">ServerServiceDefinition<span id="LSTA856FEF7_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>^ <span class="identifier">AddMethod</span>(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">method</span>, 
+	<span class="identifier">ServerStreamingServerMethod</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">handler</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">AddMethod</span> : 
+        <span class="parameter">method</span> : <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">handler</span> : <span class="identifier">ServerStreamingServerMethod</span>&lt;'TRequest, 'TResponse&gt; <span class="keyword">-&gt;</span> <span class="identifier">ServerServiceDefinition<span id="LSTA856FEF7_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_Method_2.htm">Grpc.Core<span id="LSTA856FEF7_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method</a><span id="LSTA856FEF7_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTA856FEF7_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method.</dd><dt><span class="parameter">handler</span></dt><dd>Type: <a href="T_Grpc_Core_ServerStreamingServerMethod_2.htm">Grpc.Core<span id="LSTA856FEF7_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_15?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerStreamingServerMethod</a><span id="LSTA856FEF7_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_16?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTA856FEF7_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_17?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method handler.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>The request message class.</dd><dt><span class="parameter">TResponse</span></dt><dd>The response message class.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LSTA856FEF7_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_18?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a><br />This builder instance.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LSTA856FEF7_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA856FEF7_19?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm">AddMethod Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm
new file mode 100644
index 0000000000000000000000000000000000000000..de304e706c98f13754d782190980e8872cb75499
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.Builder.AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2(Grpc.Core.Method{``0,``1},Grpc.Core.UnaryServerMethod{``0,``1})" /><meta name="Description" content="Adds a definitions for a single request - single response method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3" /><meta name="guid" content="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" title="AddMethod Method " tocid="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod">AddMethod Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LSTF6C2EF8B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_0?cpp=::|nu=.");</script>Builder<span id="LSTF6C2EF8B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_1?cpp=::|nu=.");</script>AddMethod<span id="LSTF6C2EF8B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTF6C2EF8B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (Method<span id="LSTF6C2EF8B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTF6C2EF8B_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, UnaryServerMethod<span id="LSTF6C2EF8B_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTF6C2EF8B_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Adds a definitions for a single request - single response method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ServerServiceDefinition<span id="LSTF6C2EF8B_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span> <span class="identifier">AddMethod</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt; <span class="parameter">method</span>,
+	<span class="identifier">UnaryServerMethod</span>&lt;TRequest, TResponse&gt; <span class="parameter">handler</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">AddMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse),
+	<span class="parameter">handler</span> <span class="keyword">As</span> <span class="identifier">UnaryServerMethod</span>(<span class="keyword">Of</span> TRequest, TResponse)
+) <span class="keyword">As</span> <span class="identifier">ServerServiceDefinition<span id="LSTF6C2EF8B_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="identifier">ServerServiceDefinition<span id="LSTF6C2EF8B_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>^ <span class="identifier">AddMethod</span>(
+	<span class="identifier">Method</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">method</span>, 
+	<span class="identifier">UnaryServerMethod</span>&lt;TRequest, TResponse&gt;^ <span class="parameter">handler</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">AddMethod</span> : 
+        <span class="parameter">method</span> : <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; * 
+        <span class="parameter">handler</span> : <span class="identifier">UnaryServerMethod</span>&lt;'TRequest, 'TResponse&gt; <span class="keyword">-&gt;</span> <span class="identifier">ServerServiceDefinition<span id="LSTF6C2EF8B_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>  <span class="keyword">when</span> 'TRequest : <span class="keyword">not struct</span> <span class="keyword">when</span> 'TResponse : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_Method_2.htm">Grpc.Core<span id="LSTF6C2EF8B_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method</a><span id="LSTF6C2EF8B_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTF6C2EF8B_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method.</dd><dt><span class="parameter">handler</span></dt><dd>Type: <a href="T_Grpc_Core_UnaryServerMethod_2.htm">Grpc.Core<span id="LSTF6C2EF8B_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_15?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>UnaryServerMethod</a><span id="LSTF6C2EF8B_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_16?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span>, <span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTF6C2EF8B_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_17?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />The method handler.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>The request message class.</dd><dt><span class="parameter">TResponse</span></dt><dd>The response message class.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LSTF6C2EF8B_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_18?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a><br />This builder instance.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LSTF6C2EF8B_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF6C2EF8B_19?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm">AddMethod Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm
new file mode 100644
index 0000000000000000000000000000000000000000..38d2dff08b90d5f5c87b890eee4086ebf29b9605
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.Builder.Build Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Build method" /><meta name="System.Keywords" content="ServerServiceDefinition.Builder.Build method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition.Builder.Build" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerServiceDefinition.Builder.Build" /><meta name="Description" content="Creates an immutable ServerServiceDefinition from this builder." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerServiceDefinition_Builder_Build" /><meta name="guid" content="M_Grpc_Core_ServerServiceDefinition_Builder_Build" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" title="AddMethod Method " tocid="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod">AddMethod Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm" title="Build Method " tocid="M_Grpc_Core_ServerServiceDefinition_Builder_Build">Build Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LSTEF72785C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEF72785C_0?cpp=::|nu=.");</script>Builder<span id="LSTEF72785C_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEF72785C_1?cpp=::|nu=.");</script>Build Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates an immutable <span class="code">ServerServiceDefinition</span> from this builder.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ServerServiceDefinition</span> <span class="identifier">Build</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">Build</span> <span class="keyword">As</span> <span class="identifier">ServerServiceDefinition</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">ServerServiceDefinition</span>^ <span class="identifier">Build</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Build</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">ServerServiceDefinition</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition</a><br />The <span class="code">ServerServiceDefinition</span> object.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LSTEF72785C_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEF72785C_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..dae62e894894d108ceb325098ee6886e0d43cb49
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.Builder Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerServiceDefinition.Builder class, constructor" /><meta name="System.Keywords" content="ServerServiceDefinition.Builder.Builder constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition.Builder.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition.Builder.Builder" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerServiceDefinition.Builder.#ctor(System.String)" /><meta name="Description" content="Creates a new instance of builder." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerServiceDefinition_Builder__ctor" /><meta name="guid" content="M_Grpc_Core_ServerServiceDefinition_Builder__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm" title="ServerServiceDefinition.Builder Constructor " tocid="M_Grpc_Core_ServerServiceDefinition_Builder__ctor">ServerServiceDefinition.Builder Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LST82E36366_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST82E36366_0?cpp=::|nu=.");</script>Builder Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new instance of builder.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Builder</span>(
+	<span class="identifier">string</span> <span class="parameter">serviceName</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">serviceName</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Builder</span>(
+	<span class="identifier">String</span>^ <span class="parameter">serviceName</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">serviceName</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">Builder</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">serviceName</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST82E36366_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST82E36366_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />The service name.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST82E36366_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST82E36366_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c4773bb452e3a62b99af48578df6edd49d1e7543
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.CreateBuilder Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CreateBuilder method" /><meta name="System.Keywords" content="ServerServiceDefinition.CreateBuilder method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition.CreateBuilder" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.ServerServiceDefinition.CreateBuilder(System.String)" /><meta name="Description" content="Creates a new builder object for ServerServiceDefinition." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_ServerServiceDefinition_CreateBuilder" /><meta name="guid" content="M_Grpc_Core_ServerServiceDefinition_CreateBuilder" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm" title="CreateBuilder Method " tocid="M_Grpc_Core_ServerServiceDefinition_CreateBuilder">CreateBuilder Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LST50D5ABBF_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50D5ABBF_0?cpp=::|nu=.");</script>CreateBuilder Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new builder object for <span class="code">ServerServiceDefinition</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">ServerServiceDefinition<span id="LST50D5ABBF_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50D5ABBF_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span> <span class="identifier">CreateBuilder</span>(
+	<span class="identifier">string</span> <span class="parameter">serviceName</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">CreateBuilder</span> ( 
+	<span class="parameter">serviceName</span> <span class="keyword">As</span> <span class="identifier">String</span>
+) <span class="keyword">As</span> <span class="identifier">ServerServiceDefinition<span id="LST50D5ABBF_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50D5ABBF_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="identifier">ServerServiceDefinition<span id="LST50D5ABBF_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50D5ABBF_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span>^ <span class="identifier">CreateBuilder</span>(
+	<span class="identifier">String</span>^ <span class="parameter">serviceName</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">CreateBuilder</span> : 
+        <span class="parameter">serviceName</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">ServerServiceDefinition<span id="LST50D5ABBF_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50D5ABBF_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">serviceName</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST50D5ABBF_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50D5ABBF_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />The service name.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST50D5ABBF_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50D5ABBF_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a><br />The builder object.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_KillAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_KillAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..426ecb67618e7278a607f8af392168589ce04b8d
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_KillAsync.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.KillAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="KillAsync method" /><meta name="System.Keywords" content="Server.KillAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.KillAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.KillAsync" /><meta name="Description" content="Requests server shutdown while cancelling all the in-progress calls. The returned task finishes when shutdown procedure is complete." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_KillAsync" /><meta name="guid" content="M_Grpc_Core_Server_KillAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server.htm" title="Server Methods" tocid="Methods_T_Grpc_Core_Server">Server Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_KillAsync.htm" title="KillAsync Method " tocid="M_Grpc_Core_Server_KillAsync">KillAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Server_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_Start.htm" title="Start Method " tocid="M_Grpc_Core_Server_Start">Start Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LSTBDF23A25_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBDF23A25_0?cpp=::|nu=.");</script>KillAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Requests server shutdown while cancelling all the in-progress calls.
+            The returned task finishes when shutdown procedure is complete.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span> <span class="identifier">KillAsync</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">KillAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Task</span>^ <span class="identifier">KillAsync</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">KillAsync</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_Add.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_Add.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1630b0207d32524d1db799cd1e313764055f5374
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_Add.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ServerPortCollection.Add Method (ServerPort)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.ServerPortCollection.Add(Grpc.Core.ServerPort)" /><meta name="Description" content="Adds a new port on which server should listen. Only call this before Start(). The port on which server will be listening." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_ServerPortCollection_Add" /><meta name="guid" content="M_Grpc_Core_Server_ServerPortCollection_Add" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServerPortCollection.htm" title="ServerPortCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServerPortCollection">ServerPortCollection Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Server_ServerPortCollection_Add">Add Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method (ServerPort)" tocid="M_Grpc_Core_Server_ServerPortCollection_Add">Add Method (ServerPort)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_Add_1.htm" title="Add Method (String, Int32, ServerCredentials)" tocid="M_Grpc_Core_Server_ServerPortCollection_Add_1">Add Method (String, Int32, ServerCredentials)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LST2A6387EA_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A6387EA_0?cpp=::|nu=.");</script>ServerPortCollection<span id="LST2A6387EA_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A6387EA_1?cpp=::|nu=.");</script>Add Method (ServerPort)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Adds a new port on which server should listen.
+            Only call this before Start().
+            <h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><br />The port on which server will be listening.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">Add</span>(
+	<span class="identifier">ServerPort</span> <span class="parameter">serverPort</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">Add</span> ( 
+	<span class="parameter">serverPort</span> <span class="keyword">As</span> <span class="identifier">ServerPort</span>
+) <span class="keyword">As</span> <span class="identifier">Integer</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">int</span> <span class="identifier">Add</span>(
+	<span class="identifier">ServerPort</span>^ <span class="parameter">serverPort</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Add</span> : 
+        <span class="parameter">serverPort</span> : <span class="identifier">ServerPort</span> <span class="keyword">-&gt;</span> <span class="identifier">int</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">serverPort</span></dt><dd>Type: <a href="T_Grpc_Core_ServerPort.htm">Grpc.Core<span id="LST2A6387EA_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A6387EA_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPort</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="serverPort"/&gt; documentation for "M:Grpc.Core.Server.ServerPortCollection.Add(Grpc.Core.ServerPort)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LST2A6387EA_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A6387EA_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Server_ServerPortCollection_Add.htm">Add Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_Add_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_Add_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5ab99149365154651f0c3b17fa00ce44fcaac774
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_Add_1.htm
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ServerPortCollection.Add Method (String, Int32, ServerCredentials)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.ServerPortCollection.Add(System.String,System.Int32,Grpc.Core.ServerCredentials)" /><meta name="Description" content="Adds a new port on which server should listen. The port on which server will be listening." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_ServerPortCollection_Add_1" /><meta name="guid" content="M_Grpc_Core_Server_ServerPortCollection_Add_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServerPortCollection.htm" title="ServerPortCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServerPortCollection">ServerPortCollection Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Server_ServerPortCollection_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method (ServerPort)" tocid="M_Grpc_Core_Server_ServerPortCollection_Add">Add Method (ServerPort)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_Add_1.htm" title="Add Method (String, Int32, ServerCredentials)" tocid="M_Grpc_Core_Server_ServerPortCollection_Add_1">Add Method (String, Int32, ServerCredentials)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LST9300D080_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9300D080_0?cpp=::|nu=.");</script>ServerPortCollection<span id="LST9300D080_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9300D080_1?cpp=::|nu=.");</script>Add Method (String, Int32, ServerCredentials)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Adds a new port on which server should listen.
+            <h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><br />The port on which server will be listening.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">Add</span>(
+	<span class="identifier">string</span> <span class="parameter">host</span>,
+	<span class="identifier">int</span> <span class="parameter">port</span>,
+	<span class="identifier">ServerCredentials</span> <span class="parameter">credentials</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">Add</span> ( 
+	<span class="parameter">host</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">port</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
+	<span class="parameter">credentials</span> <span class="keyword">As</span> <span class="identifier">ServerCredentials</span>
+) <span class="keyword">As</span> <span class="identifier">Integer</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">int</span> <span class="identifier">Add</span>(
+	<span class="identifier">String</span>^ <span class="parameter">host</span>, 
+	<span class="identifier">int</span> <span class="parameter">port</span>, 
+	<span class="identifier">ServerCredentials</span>^ <span class="parameter">credentials</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Add</span> : 
+        <span class="parameter">host</span> : <span class="identifier">string</span> * 
+        <span class="parameter">port</span> : <span class="identifier">int</span> * 
+        <span class="parameter">credentials</span> : <span class="identifier">ServerCredentials</span> <span class="keyword">-&gt;</span> <span class="identifier">int</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">host</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST9300D080_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9300D080_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />the host</dd><dt><span class="parameter">port</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LST9300D080_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9300D080_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br />the port. If zero, an unused port is chosen automatically.</dd><dt><span class="parameter">credentials</span></dt><dd>Type: <a href="T_Grpc_Core_ServerCredentials.htm">Grpc.Core<span id="LST9300D080_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9300D080_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCredentials</a><br />credentials to use to secure this port.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LST9300D080_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9300D080_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Server_ServerPortCollection_Add.htm">Add Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c3f33973678fcaab75952d243013af08d03581bc
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ServerPortCollection.GetEnumerator Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetEnumerator method" /><meta name="System.Keywords" content="Server.ServerPortCollection.GetEnumerator method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ServerPortCollection.GetEnumerator" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.ServerPortCollection.GetEnumerator" /><meta name="Description" content="Gets enumerator for this collection." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator" /><meta name="guid" content="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServerPortCollection.htm" title="ServerPortCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServerPortCollection">ServerPortCollection Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Server_ServerPortCollection_Add">Add Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator">GetEnumerator Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LSTB74197FB_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_0?cpp=::|nu=.");</script>ServerPortCollection<span id="LSTB74197FB_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_1?cpp=::|nu=.");</script>GetEnumerator Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets enumerator for this collection.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerPort</span>&gt; <span class="identifier">GetEnumerator</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetEnumerator</span> <span class="keyword">As</span> <span class="identifier">IEnumerator</span>(<span class="keyword">Of</span> <span class="identifier">ServerPort</span>)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerPort</span>^&gt;^ <span class="identifier">GetEnumerator</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">GetEnumerator</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerPort</span>&gt; 
+<span class="keyword">override</span> <span class="identifier">GetEnumerator</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerPort</span>&gt; </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/78dfe2yb" target="_blank">IEnumerator</a><span id="LSTB74197FB_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_ServerPort.htm">ServerPort</a><span id="LSTB74197FB_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/s793z9y2" target="_blank">IEnumerable<span id="LSTB74197FB_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTB74197FB_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LSTB74197FB_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GetEnumerator<span id="LSTB74197FB_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_7?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LSTB74197FB_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB74197FB_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c525f99a9ecbb11fb9fd3a0bbf37a810140acce2
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ServiceDefinitionCollection.Add Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Add method" /><meta name="System.Keywords" content="Server.ServiceDefinitionCollection.Add method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ServiceDefinitionCollection.Add" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.ServiceDefinitionCollection.Add(Grpc.Core.ServerServiceDefinition)" /><meta name="Description" content="Adds a service definition to the server. This is how you register handlers for a service with the server. Only call this before Start()." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_ServiceDefinitionCollection_Add" /><meta name="guid" content="M_Grpc_Core_Server_ServiceDefinitionCollection_Add" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="ServiceDefinitionCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection">ServiceDefinitionCollection Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm" title="Add Method " tocid="M_Grpc_Core_Server_ServiceDefinitionCollection_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator">GetEnumerator Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LSTAC5304BD_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAC5304BD_0?cpp=::|nu=.");</script>ServiceDefinitionCollection<span id="LSTAC5304BD_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAC5304BD_1?cpp=::|nu=.");</script>Add Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Adds a service definition to the server. This is how you register
+            handlers for a service with the server. Only call this before Start().
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">ServerServiceDefinition</span> <span class="parameter">serviceDefinition</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Add</span> ( 
+	<span class="parameter">serviceDefinition</span> <span class="keyword">As</span> <span class="identifier">ServerServiceDefinition</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">void</span> <span class="identifier">Add</span>(
+	<span class="identifier">ServerServiceDefinition</span>^ <span class="parameter">serviceDefinition</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Add</span> : 
+        <span class="parameter">serviceDefinition</span> : <span class="identifier">ServerServiceDefinition</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">serviceDefinition</span></dt><dd>Type: <a href="T_Grpc_Core_ServerServiceDefinition.htm">Grpc.Core<span id="LSTAC5304BD_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAC5304BD_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerServiceDefinition</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="serviceDefinition"/&gt; documentation for "M:Grpc.Core.Server.ServiceDefinitionCollection.Add(Grpc.Core.ServerServiceDefinition)"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm">Server<span id="LSTAC5304BD_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAC5304BD_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm
new file mode 100644
index 0000000000000000000000000000000000000000..afa388ca28002c5ca6bad690e5eb59a386c61b67
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ServiceDefinitionCollection.GetEnumerator Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GetEnumerator method" /><meta name="System.Keywords" content="Server.ServiceDefinitionCollection.GetEnumerator method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ServiceDefinitionCollection.GetEnumerator" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.ServiceDefinitionCollection.GetEnumerator" /><meta name="Description" content="Gets enumerator for this collection." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator" /><meta name="guid" content="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="ServiceDefinitionCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection">ServiceDefinitionCollection Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm" title="Add Method " tocid="M_Grpc_Core_Server_ServiceDefinitionCollection_Add">Add Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator">GetEnumerator Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LSTCABA4EC3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_0?cpp=::|nu=.");</script>ServiceDefinitionCollection<span id="LSTCABA4EC3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_1?cpp=::|nu=.");</script>GetEnumerator Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets enumerator for this collection.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerServiceDefinition</span>&gt; <span class="identifier">GetEnumerator</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">GetEnumerator</span> <span class="keyword">As</span> <span class="identifier">IEnumerator</span>(<span class="keyword">Of</span> <span class="identifier">ServerServiceDefinition</span>)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerServiceDefinition</span>^&gt;^ <span class="identifier">GetEnumerator</span>() <span class="keyword">sealed</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">GetEnumerator</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerServiceDefinition</span>&gt; 
+<span class="keyword">override</span> <span class="identifier">GetEnumerator</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">IEnumerator</span>&lt;<span class="identifier">ServerServiceDefinition</span>&gt; </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/78dfe2yb" target="_blank">IEnumerator</a><span id="LSTCABA4EC3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition</a><span id="LSTCABA4EC3_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/s793z9y2" target="_blank">IEnumerable<span id="LSTCABA4EC3_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTCABA4EC3_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LSTCABA4EC3_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GetEnumerator<span id="LSTCABA4EC3_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_7?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm">Server<span id="LSTCABA4EC3_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCABA4EC3_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_ShutdownAsync.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ShutdownAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..77cc86e8fe37714d0180ad1929490aec81f0afb5
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_ShutdownAsync.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ShutdownAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ShutdownAsync method" /><meta name="System.Keywords" content="Server.ShutdownAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ShutdownAsync" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.ShutdownAsync" /><meta name="Description" content="Requests server shutdown and when there are no more calls being serviced, cleans up used resources. The returned task finishes when shutdown procedure is complete." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_ShutdownAsync" /><meta name="guid" content="M_Grpc_Core_Server_ShutdownAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server.htm" title="Server Methods" tocid="Methods_T_Grpc_Core_Server">Server Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_KillAsync.htm" title="KillAsync Method " tocid="M_Grpc_Core_Server_KillAsync">KillAsync Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Server_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_Start.htm" title="Start Method " tocid="M_Grpc_Core_Server_Start">Start Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LST176A8547_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST176A8547_0?cpp=::|nu=.");</script>ShutdownAsync Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Requests server shutdown and when there are no more calls being serviced,
+            cleans up used resources. The returned task finishes when shutdown procedure
+            is complete.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span> <span class="identifier">ShutdownAsync</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Function</span> <span class="identifier">ShutdownAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Task</span>^ <span class="identifier">ShutdownAsync</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ShutdownAsync</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server_Start.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server_Start.htm
new file mode 100644
index 0000000000000000000000000000000000000000..09d55ea5464c33ca00a68e7513eac45997abaed7
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server_Start.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.Start Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Start method" /><meta name="System.Keywords" content="Server.Start method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.Start" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.Start" /><meta name="Description" content="Starts the server." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server_Start" /><meta name="guid" content="M_Grpc_Core_Server_Start" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server.htm" title="Server Methods" tocid="Methods_T_Grpc_Core_Server">Server Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_KillAsync.htm" title="KillAsync Method " tocid="M_Grpc_Core_Server_KillAsync">KillAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Server_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_Start.htm" title="Start Method " tocid="M_Grpc_Core_Server_Start">Start Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LST94819305_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST94819305_0?cpp=::|nu=.");</script>Start Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Starts the server.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">void</span> <span class="identifier">Start</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">Start</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">void</span> <span class="identifier">Start</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Start</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Server__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Server__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..268246bb3549e50d59f46642cdf47b860458d68c
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Server__ctor.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Server class, constructor" /><meta name="System.Keywords" content="Server.Server constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.Server" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Server.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.ChannelOption})" /><meta name="Description" content="Create a new server." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Server__ctor" /><meta name="guid" content="M_Grpc_Core_Server__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server__ctor.htm" title="Server Constructor " tocid="M_Grpc_Core_Server__ctor">Server Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Server.htm" title="Server Properties" tocid="Properties_T_Grpc_Core_Server">Server Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server.htm" title="Server Methods" tocid="Methods_T_Grpc_Core_Server">Server Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Create a new server.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Server</span>(
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>&gt; <span class="parameter">options</span> = <span class="keyword">null</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	Optional <span class="parameter">options</span> <span class="keyword">As</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">ChannelOption</span>) = <span class="keyword">Nothing</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Server</span>(
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>^&gt;^ <span class="parameter">options</span> = <span class="keyword">nullptr</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        ?<span class="parameter">options</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ChannelOption</span>&gt; 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">options</span> = defaultArg <span class="identifier">options</span> <span class="keyword">null</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">Server</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">options</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/9eekhta0" target="_blank">System.Collections.Generic<span id="LSTB7B395F0_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB7B395F0_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IEnumerable</a><span id="LSTB7B395F0_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB7B395F0_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption</a><span id="LSTB7B395F0_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB7B395F0_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Channel options.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..eda9fee34ee26dca244d3e366d8089fff417e1fb
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials Constructor </title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.SslCredentials.#ctor" /><meta name="Description" content="Creates client-side SSL credentials loaded from disk file pointed to by the GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable. If that fails, gets the roots certificates from a well known place on disk." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_SslCredentials__ctor" /><meta name="guid" content="M_Grpc_Core_SslCredentials__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="Overload_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="M_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_1.htm" title="SslCredentials Constructor (String)" tocid="M_Grpc_Core_SslCredentials__ctor_1">SslCredentials Constructor (String)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_2.htm" title="SslCredentials Constructor (String, KeyCertificatePair)" tocid="M_Grpc_Core_SslCredentials__ctor_2">SslCredentials Constructor (String, KeyCertificatePair)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates client-side SSL credentials loaded from
+            disk file pointed to by the GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable.
+            If that fails, gets the roots certificates from a well known place on disk.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">SslCredentials</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">SslCredentials</span>()</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">SslCredentials</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_SslCredentials__ctor.htm">SslCredentials Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cfdcd658e0cb15b495dca03b0575bb8b1e6aef12
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor_1.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials Constructor (String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.SslCredentials.#ctor(System.String)" /><meta name="Description" content="Creates client-side SSL credentials from a string containing PEM encoded root certificates." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_SslCredentials__ctor_1" /><meta name="guid" content="M_Grpc_Core_SslCredentials__ctor_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="Overload_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="M_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_1.htm" title="SslCredentials Constructor (String)" tocid="M_Grpc_Core_SslCredentials__ctor_1">SslCredentials Constructor (String)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_2.htm" title="SslCredentials Constructor (String, KeyCertificatePair)" tocid="M_Grpc_Core_SslCredentials__ctor_2">SslCredentials Constructor (String, KeyCertificatePair)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials Constructor (String)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates client-side SSL credentials from
+            a string containing PEM encoded root certificates.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">SslCredentials</span>(
+	<span class="identifier">string</span> <span class="parameter">rootCertificates</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">rootCertificates</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">SslCredentials</span>(
+	<span class="identifier">String</span>^ <span class="parameter">rootCertificates</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">rootCertificates</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">SslCredentials</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">rootCertificates</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTAEB814F4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAEB814F4_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="rootCertificates"/&gt; documentation for "M:Grpc.Core.SslCredentials.#ctor(System.String)"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_SslCredentials__ctor.htm">SslCredentials Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor_2.htm b/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4f73a16035a3d56250ee93fcbd1a53801b2c3248
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_SslCredentials__ctor_2.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials Constructor (String, KeyCertificatePair)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.SslCredentials.#ctor(System.String,Grpc.Core.KeyCertificatePair)" /><meta name="Description" content="Creates client-side SSL credentials." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_SslCredentials__ctor_2" /><meta name="guid" content="M_Grpc_Core_SslCredentials__ctor_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="Overload_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="M_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_1.htm" title="SslCredentials Constructor (String)" tocid="M_Grpc_Core_SslCredentials__ctor_1">SslCredentials Constructor (String)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_2.htm" title="SslCredentials Constructor (String, KeyCertificatePair)" tocid="M_Grpc_Core_SslCredentials__ctor_2">SslCredentials Constructor (String, KeyCertificatePair)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials Constructor (String, KeyCertificatePair)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates client-side SSL credentials.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">SslCredentials</span>(
+	<span class="identifier">string</span> <span class="parameter">rootCertificates</span>,
+	<span class="identifier">KeyCertificatePair</span> <span class="parameter">keyCertificatePair</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">rootCertificates</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">keyCertificatePair</span> <span class="keyword">As</span> <span class="identifier">KeyCertificatePair</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">SslCredentials</span>(
+	<span class="identifier">String</span>^ <span class="parameter">rootCertificates</span>, 
+	<span class="identifier">KeyCertificatePair</span>^ <span class="parameter">keyCertificatePair</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">rootCertificates</span> : <span class="identifier">string</span> * 
+        <span class="parameter">keyCertificatePair</span> : <span class="identifier">KeyCertificatePair</span> <span class="keyword">-&gt;</span> <span class="identifier">SslCredentials</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">rootCertificates</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST62FC7787_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST62FC7787_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />string containing PEM encoded server root certificates.</dd><dt><span class="parameter">keyCertificatePair</span></dt><dd>Type: <a href="T_Grpc_Core_KeyCertificatePair.htm">Grpc.Core<span id="LST62FC7787_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST62FC7787_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>KeyCertificatePair</a><br />a key certificate pair.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_SslCredentials__ctor.htm">SslCredentials Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_SslServerCredentials__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_SslServerCredentials__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f7042eb5d475bb9e1e5b465174b2dfc3a7301913
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_SslServerCredentials__ctor.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair})" /><meta name="Description" content="Creates server-side SSL credentials. This constructor should be use if you do not wish to autheticate client using client root certificates." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_SslServerCredentials__ctor" /><meta name="guid" content="M_Grpc_Core_SslServerCredentials__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor " tocid="Overload_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))" tocid="M_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslServerCredentials__ctor_1.htm" title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)" tocid="M_Grpc_Core_SslServerCredentials__ctor_1">SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials Constructor (IEnumerable<span id="LSTAB2A1886_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAB2A1886_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>KeyCertificatePair<span id="LSTAB2A1886_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAB2A1886_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates server-side SSL credentials.
+            This constructor should be use if you do not wish to autheticate client
+            using client root certificates.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">SslServerCredentials</span>(
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">KeyCertificatePair</span>&gt; <span class="parameter">keyCertificatePairs</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">keyCertificatePairs</span> <span class="keyword">As</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">KeyCertificatePair</span>)
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">SslServerCredentials</span>(
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">KeyCertificatePair</span>^&gt;^ <span class="parameter">keyCertificatePairs</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">keyCertificatePairs</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">KeyCertificatePair</span>&gt; <span class="keyword">-&gt;</span> <span class="identifier">SslServerCredentials</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">keyCertificatePairs</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/9eekhta0" target="_blank">System.Collections.Generic<span id="LSTAB2A1886_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAB2A1886_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IEnumerable</a><span id="LSTAB2A1886_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAB2A1886_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair</a><span id="LSTAB2A1886_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAB2A1886_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Key-certificates to use.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_SslServerCredentials__ctor.htm">SslServerCredentials Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_SslServerCredentials__ctor_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_SslServerCredentials__ctor_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..39b6f74eb09fb15cb3c2cb5a951f89d4716dbd61
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_SslServerCredentials__ctor_1.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.SslServerCredentials.#ctor(System.Collections.Generic.IEnumerable{Grpc.Core.KeyCertificatePair},System.String,System.Boolean)" /><meta name="Description" content="Creates server-side SSL credentials." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_SslServerCredentials__ctor_1" /><meta name="guid" content="M_Grpc_Core_SslServerCredentials__ctor_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor " tocid="Overload_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))" tocid="M_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslServerCredentials__ctor_1.htm" title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)" tocid="M_Grpc_Core_SslServerCredentials__ctor_1">SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials Constructor (IEnumerable<span id="LST8C6762F7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8C6762F7_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>KeyCertificatePair<span id="LST8C6762F7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8C6762F7_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, String, Boolean)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates server-side SSL credentials.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">SslServerCredentials</span>(
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">KeyCertificatePair</span>&gt; <span class="parameter">keyCertificatePairs</span>,
+	<span class="identifier">string</span> <span class="parameter">rootCertificates</span>,
+	<span class="identifier">bool</span> <span class="parameter">forceClientAuth</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">keyCertificatePairs</span> <span class="keyword">As</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">KeyCertificatePair</span>),
+	<span class="parameter">rootCertificates</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">forceClientAuth</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">SslServerCredentials</span>(
+	<span class="identifier">IEnumerable</span>&lt;<span class="identifier">KeyCertificatePair</span>^&gt;^ <span class="parameter">keyCertificatePairs</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">rootCertificates</span>, 
+	<span class="identifier">bool</span> <span class="parameter">forceClientAuth</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">keyCertificatePairs</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">KeyCertificatePair</span>&gt; * 
+        <span class="parameter">rootCertificates</span> : <span class="identifier">string</span> * 
+        <span class="parameter">forceClientAuth</span> : <span class="identifier">bool</span> <span class="keyword">-&gt;</span> <span class="identifier">SslServerCredentials</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">keyCertificatePairs</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/9eekhta0" target="_blank">System.Collections.Generic<span id="LST8C6762F7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8C6762F7_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IEnumerable</a><span id="LST8C6762F7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8C6762F7_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair</a><span id="LST8C6762F7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8C6762F7_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br />Key-certificates to use.</dd><dt><span class="parameter">rootCertificates</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST8C6762F7_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8C6762F7_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />PEM encoded client root certificates used to authenticate client.</dd><dt><span class="parameter">forceClientAuth</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LST8C6762F7_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8C6762F7_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br />If true, client will be rejected unless it proves its unthenticity using against rootCertificates.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_SslServerCredentials__ctor.htm">SslServerCredentials Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Status_ToString.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Status_ToString.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5132664b73d43ad9dfa7a2fdaf344ca83ae66698
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Status_ToString.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status.ToString Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ToString method" /><meta name="System.Keywords" content="Status.ToString method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.ToString" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Status.ToString" /><meta name="Description" content="Returns a that represents the current ." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Status_ToString" /><meta name="guid" content="M_Grpc_Core_Status_ToString" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Status.htm" title="Status Methods" tocid="Methods_T_Grpc_Core_Status">Status Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Status_ToString.htm" title="ToString Method " tocid="M_Grpc_Core_Status_ToString">ToString Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status<span id="LST9E36D944_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9E36D944_0?cpp=::|nu=.");</script>ToString Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <a href="T_Grpc_Core_Status.htm">Status</a>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">override</span> <span class="identifier">string</span> <span class="identifier">ToString</span>()</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Overrides</span> <span class="keyword">Function</span> <span class="identifier">ToString</span> <span class="keyword">As</span> <span class="identifier">String</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="identifier">String</span>^ <span class="identifier">ToString</span>() <span class="keyword">override</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">ToString</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">string</span> 
+<span class="keyword">override</span> <span class="identifier">ToString</span> : <span class="keyword">unit</span> <span class="keyword">-&gt;</span> <span class="identifier">string</span> </pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Status__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Status__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1e613e2ab04b3bfdeaac20444474dcb750a36661
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Status__ctor.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Status structure, constructor" /><meta name="System.Keywords" content="Status.Status constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.Status" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Status.#ctor(Grpc.Core.StatusCode,System.String)" /><meta name="Description" content="Creates a new instance of Status." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_Status__ctor" /><meta name="guid" content="M_Grpc_Core_Status__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Status__ctor.htm" title="Status Constructor " tocid="M_Grpc_Core_Status__ctor">Status Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Status.htm" title="Status Properties" tocid="Properties_T_Grpc_Core_Status">Status Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Status.htm" title="Status Methods" tocid="Methods_T_Grpc_Core_Status">Status Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Status.htm" title="Status Fields" tocid="Fields_T_Grpc_Core_Status">Status Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Creates a new instance of <span class="code">Status</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Status</span>(
+	<span class="identifier">StatusCode</span> <span class="parameter">statusCode</span>,
+	<span class="identifier">string</span> <span class="parameter">detail</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	<span class="parameter">statusCode</span> <span class="keyword">As</span> <span class="identifier">StatusCode</span>,
+	<span class="parameter">detail</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">Status</span>(
+	<span class="identifier">StatusCode</span> <span class="parameter">statusCode</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">detail</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        <span class="parameter">statusCode</span> : <span class="identifier">StatusCode</span> * 
+        <span class="parameter">detail</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="identifier">Status</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">statusCode</span></dt><dd>Type: <a href="T_Grpc_Core_StatusCode.htm">Grpc.Core<span id="LST603383C6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST603383C6_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>StatusCode</a><br />Status code.</dd><dt><span class="parameter">detail</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST603383C6_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST603383C6_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />Detail.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ad827bda7b656079d5fd1fc860393348e88bd555
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm
@@ -0,0 +1,23 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncStreamExtensions.ForEachAsync(T) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ForEachAsync%3CT%3E method" /><meta name="System.Keywords" content="ForEachAsync(Of T) method" /><meta name="System.Keywords" content="AsyncStreamExtensions.ForEachAsync%3CT%3E method" /><meta name="System.Keywords" content="AsyncStreamExtensions.ForEachAsync(Of T) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.AsyncStreamExtensions.ForEachAsync``1" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.AsyncStreamExtensions.ForEachAsync``1(Grpc.Core.IAsyncStreamReader{``0},System.Func{``0,System.Threading.Tasks.Task})" /><meta name="Description" content="Reads the entire stream and executes an async action for each element." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1" /><meta name="guid" content="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Methods" tocid="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" title="ForEachAsync(T) Method " tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1">ForEachAsync(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" title="ToListAsync(T) Method " tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1">ToListAsync(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" title="WriteAllAsync Method " tocid="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync">WriteAllAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncStreamExtensions<span id="LST91555AB7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_0?cpp=::|nu=.");</script>ForEachAsync<span id="LST91555AB7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST91555AB7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Reads the entire stream and executes an async action for each element.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">Task</span> <span class="identifier">ForEachAsync</span>&lt;T&gt;(
+	<span class="keyword">this</span> <span class="identifier">IAsyncStreamReader</span>&lt;T&gt; <span class="parameter">streamReader</span>,
+	<span class="identifier">Func</span>&lt;T, <span class="identifier">Task</span>&gt; <span class="parameter">asyncAction</span>
+)
+<span class="keyword">where</span> T : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">&lt;<span class="identifier">ExtensionAttribute</span>&gt;
+<span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">ForEachAsync</span>(<span class="keyword">Of</span> T <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">streamReader</span> <span class="keyword">As</span> <span class="identifier">IAsyncStreamReader</span>(<span class="keyword">Of</span> T),
+	<span class="parameter">asyncAction</span> <span class="keyword">As</span> <span class="identifier">Func</span>(<span class="keyword">Of</span> T, <span class="identifier">Task</span>)
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+[<span class="identifier">ExtensionAttribute</span>]
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">where</span> T : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">Task</span>^ <span class="identifier">ForEachAsync</span>(
+	<span class="identifier">IAsyncStreamReader</span>&lt;T&gt;^ <span class="parameter">streamReader</span>, 
+	<span class="identifier">Func</span>&lt;T, <span class="identifier">Task</span>^&gt;^ <span class="parameter">asyncAction</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">ExtensionAttribute</span>&gt;]
+<span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">ForEachAsync</span> : 
+        <span class="parameter">streamReader</span> : <span class="identifier">IAsyncStreamReader</span>&lt;'T&gt; * 
+        <span class="parameter">asyncAction</span> : <span class="identifier">Func</span>&lt;'T, <span class="identifier">Task</span>&gt; <span class="keyword">-&gt;</span> <span class="identifier">Task</span>  <span class="keyword">when</span> 'T : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">streamReader</span></dt><dd>Type: <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">Grpc.Core<span id="LST91555AB7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IAsyncStreamReader</a><span id="LST91555AB7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LST91555AB7_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="streamReader"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.ForEachAsync``1(Grpc.Core.IAsyncStreamReader{``0},System.Func{``0,System.Threading.Tasks.Task})"]</p></dd><dt><span class="parameter">asyncAction</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb549151" target="_blank">System<span id="LST91555AB7_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Func</a><span id="LST91555AB7_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_7?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span>, <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a><span id="LST91555AB7_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_8?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="asyncAction"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.ForEachAsync``1(Grpc.Core.IAsyncStreamReader{``0},System.Func{``0,System.Threading.Tasks.Task})"]</p></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.ForEachAsync``1(Grpc.Core.IAsyncStreamReader{``0},System.Func{``0,System.Threading.Tasks.Task})"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a><h4 class="subHeading">Usage Note</h4>In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader</a><span id="LST91555AB7_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_9?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LST91555AB7_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST91555AB7_10?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="http://msdn.microsoft.com/en-us/library/bb384936.aspx" target="_blank">Extension Methods (Visual Basic)</a> or <a href="http://msdn.microsoft.com/en-us/library/bb383977.aspx" target="_blank">Extension Methods (C# Programming Guide)</a>.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3b76b6d21f855dcb57b05761f678e40412d172ab
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncStreamExtensions.ToListAsync(T) Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ToListAsync%3CT%3E method" /><meta name="System.Keywords" content="ToListAsync(Of T) method" /><meta name="System.Keywords" content="AsyncStreamExtensions.ToListAsync%3CT%3E method" /><meta name="System.Keywords" content="AsyncStreamExtensions.ToListAsync(Of T) method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.AsyncStreamExtensions.ToListAsync``1" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.AsyncStreamExtensions.ToListAsync``1(Grpc.Core.IAsyncStreamReader{``0})" /><meta name="Description" content="Reads the entire stream and creates a list containing all the elements read." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1" /><meta name="guid" content="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Methods" tocid="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" title="ForEachAsync(T) Method " tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1">ForEachAsync(T) Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" title="ToListAsync(T) Method " tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1">ToListAsync(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" title="WriteAllAsync Method " tocid="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync">WriteAllAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncStreamExtensions<span id="LSTB2641AD3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_0?cpp=::|nu=.");</script>ToListAsync<span id="LSTB2641AD3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTB2641AD3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Reads the entire stream and creates a list containing all the elements read.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">Task</span>&lt;<span class="identifier">List</span>&lt;T&gt;&gt; <span class="identifier">ToListAsync</span>&lt;T&gt;(
+	<span class="keyword">this</span> <span class="identifier">IAsyncStreamReader</span>&lt;T&gt; <span class="parameter">streamReader</span>
+)
+<span class="keyword">where</span> T : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">&lt;<span class="identifier">ExtensionAttribute</span>&gt;
+<span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">ToListAsync</span>(<span class="keyword">Of</span> T <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">streamReader</span> <span class="keyword">As</span> <span class="identifier">IAsyncStreamReader</span>(<span class="keyword">Of</span> T)
+) <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> <span class="identifier">List</span>(<span class="keyword">Of</span> T))</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+[<span class="identifier">ExtensionAttribute</span>]
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">where</span> T : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">Task</span>&lt;<span class="identifier">List</span>&lt;T&gt;^&gt;^ <span class="identifier">ToListAsync</span>(
+	<span class="identifier">IAsyncStreamReader</span>&lt;T&gt;^ <span class="parameter">streamReader</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">ExtensionAttribute</span>&gt;]
+<span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">ToListAsync</span> : 
+        <span class="parameter">streamReader</span> : <span class="identifier">IAsyncStreamReader</span>&lt;'T&gt; <span class="keyword">-&gt;</span> <span class="identifier">Task</span>&lt;<span class="identifier">List</span>&lt;'T&gt;&gt;  <span class="keyword">when</span> 'T : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">streamReader</span></dt><dd>Type: <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">Grpc.Core<span id="LSTB2641AD3_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IAsyncStreamReader</a><span id="LSTB2641AD3_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTB2641AD3_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="streamReader"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.ToListAsync``1(Grpc.Core.IAsyncStreamReader{``0})"]</p></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.ToListAsync``1(Grpc.Core.IAsyncStreamReader{``0})"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LSTB2641AD3_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="http://msdn2.microsoft.com/en-us/library/6sh2ey19" target="_blank">List</a><span id="LSTB2641AD3_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_7?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTB2641AD3_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_8?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTB2641AD3_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><h4 class="subHeading">Usage Note</h4>In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader</a><span id="LSTB2641AD3_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_10?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTB2641AD3_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2641AD3_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="http://msdn.microsoft.com/en-us/library/bb384936.aspx" target="_blank">Extension Methods (Visual Basic)</a> or <a href="http://msdn.microsoft.com/en-us/library/bb383977.aspx" target="_blank">Extension Methods (C# Programming Guide)</a>.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cd81b87f036c0219b8befc9b0139ed07300237a3
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm
@@ -0,0 +1,32 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncStreamExtensions.WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IClientStreamWriter{``0},System.Collections.Generic.IEnumerable{``0},System.Boolean)" /><meta name="Description" content="Writes all elements from given enumerable to the stream. Completes the stream afterwards unless close = false." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1" /><meta name="guid" content="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Methods" tocid="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" title="WriteAllAsync Method " tocid="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync">WriteAllAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm" title="WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))" tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1">WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm" title="WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)" tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1">WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncStreamExtensions<span id="LSTF01F7D4C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_0?cpp=::|nu=.");</script>WriteAllAsync<span id="LSTF01F7D4C_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTF01F7D4C_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (IClientStreamWriter<span id="LSTF01F7D4C_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTF01F7D4C_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LSTF01F7D4C_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTF01F7D4C_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Boolean)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            Completes the stream afterwards unless close = false.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">Task</span> <span class="identifier">WriteAllAsync</span>&lt;T&gt;(
+	<span class="keyword">this</span> <span class="identifier">IClientStreamWriter</span>&lt;T&gt; <span class="parameter">streamWriter</span>,
+	<span class="identifier">IEnumerable</span>&lt;T&gt; <span class="parameter">elements</span>,
+	<span class="identifier">bool</span> <span class="parameter">complete</span> = <span class="keyword">true</span>
+)
+<span class="keyword">where</span> T : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">&lt;<span class="identifier">ExtensionAttribute</span>&gt;
+<span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">WriteAllAsync</span>(<span class="keyword">Of</span> T <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">streamWriter</span> <span class="keyword">As</span> <span class="identifier">IClientStreamWriter</span>(<span class="keyword">Of</span> T),
+	<span class="parameter">elements</span> <span class="keyword">As</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> T),
+	Optional <span class="parameter">complete</span> <span class="keyword">As</span> <span class="identifier">Boolean</span> = <span class="keyword">true</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+[<span class="identifier">ExtensionAttribute</span>]
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">where</span> T : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">Task</span>^ <span class="identifier">WriteAllAsync</span>(
+	<span class="identifier">IClientStreamWriter</span>&lt;T&gt;^ <span class="parameter">streamWriter</span>, 
+	<span class="identifier">IEnumerable</span>&lt;T&gt;^ <span class="parameter">elements</span>, 
+	<span class="identifier">bool</span> <span class="parameter">complete</span> = <span class="keyword">true</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">ExtensionAttribute</span>&gt;]
+<span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">WriteAllAsync</span> : 
+        <span class="parameter">streamWriter</span> : <span class="identifier">IClientStreamWriter</span>&lt;'T&gt; * 
+        <span class="parameter">elements</span> : <span class="identifier">IEnumerable</span>&lt;'T&gt; * 
+        ?<span class="parameter">complete</span> : <span class="identifier">bool</span> 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">complete</span> = defaultArg <span class="identifier">complete</span> <span class="keyword">true</span>
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">Task</span>  <span class="keyword">when</span> 'T : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">streamWriter</span></dt><dd>Type: <a href="T_Grpc_Core_IClientStreamWriter_1.htm">Grpc.Core<span id="LSTF01F7D4C_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IClientStreamWriter</a><span id="LSTF01F7D4C_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTF01F7D4C_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="streamWriter"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IClientStreamWriter{``0},System.Collections.Generic.IEnumerable{``0},System.Boolean)"]</p></dd><dt><span class="parameter">elements</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/9eekhta0" target="_blank">System.Collections.Generic<span id="LSTF01F7D4C_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IEnumerable</a><span id="LSTF01F7D4C_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_11?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTF01F7D4C_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_12?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="elements"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IClientStreamWriter{``0},System.Collections.Generic.IEnumerable{``0},System.Boolean)"]</p></dd><dt><span class="parameter">complete</span> (Optional)</dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LSTF01F7D4C_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_13?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="complete"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IClientStreamWriter{``0},System.Collections.Generic.IEnumerable{``0},System.Boolean)"]</p></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IClientStreamWriter{``0},System.Collections.Generic.IEnumerable{``0},System.Boolean)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a><h4 class="subHeading">Usage Note</h4>In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter</a><span id="LSTF01F7D4C_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_14?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTF01F7D4C_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF01F7D4C_15?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="http://msdn.microsoft.com/en-us/library/bb384936.aspx" target="_blank">Extension Methods (Visual Basic)</a> or <a href="http://msdn.microsoft.com/en-us/library/bb383977.aspx" target="_blank">Extension Methods (C# Programming Guide)</a>.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm">WriteAllAsync Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..04fb4e52352c7a1b9d5cb70b6505adbe2218c348
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm
@@ -0,0 +1,23 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncStreamExtensions.WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IServerStreamWriter{``0},System.Collections.Generic.IEnumerable{``0})" /><meta name="Description" content="Writes all elements from given enumerable to the stream." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1" /><meta name="guid" content="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Methods" tocid="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" title="WriteAllAsync Method " tocid="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync">WriteAllAsync Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm" title="WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))" tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1">WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm" title="WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)" tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1">WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncStreamExtensions<span id="LSTA533BD61_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_0?cpp=::|nu=.");</script>WriteAllAsync<span id="LSTA533BD61_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTA533BD61_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (IServerStreamWriter<span id="LSTA533BD61_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTA533BD61_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LSTA533BD61_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTA533BD61_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">Task</span> <span class="identifier">WriteAllAsync</span>&lt;T&gt;(
+	<span class="keyword">this</span> <span class="identifier">IServerStreamWriter</span>&lt;T&gt; <span class="parameter">streamWriter</span>,
+	<span class="identifier">IEnumerable</span>&lt;T&gt; <span class="parameter">elements</span>
+)
+<span class="keyword">where</span> T : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">&lt;<span class="identifier">ExtensionAttribute</span>&gt;
+<span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">WriteAllAsync</span>(<span class="keyword">Of</span> T <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">streamWriter</span> <span class="keyword">As</span> <span class="identifier">IServerStreamWriter</span>(<span class="keyword">Of</span> T),
+	<span class="parameter">elements</span> <span class="keyword">As</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> T)
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+[<span class="identifier">ExtensionAttribute</span>]
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">where</span> T : <span class="keyword">ref class</span>
+<span class="keyword">static</span> <span class="identifier">Task</span>^ <span class="identifier">WriteAllAsync</span>(
+	<span class="identifier">IServerStreamWriter</span>&lt;T&gt;^ <span class="parameter">streamWriter</span>, 
+	<span class="identifier">IEnumerable</span>&lt;T&gt;^ <span class="parameter">elements</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">ExtensionAttribute</span>&gt;]
+<span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">WriteAllAsync</span> : 
+        <span class="parameter">streamWriter</span> : <span class="identifier">IServerStreamWriter</span>&lt;'T&gt; * 
+        <span class="parameter">elements</span> : <span class="identifier">IEnumerable</span>&lt;'T&gt; <span class="keyword">-&gt;</span> <span class="identifier">Task</span>  <span class="keyword">when</span> 'T : <span class="keyword">not struct</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">streamWriter</span></dt><dd>Type: <a href="T_Grpc_Core_IServerStreamWriter_1.htm">Grpc.Core<span id="LSTA533BD61_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IServerStreamWriter</a><span id="LSTA533BD61_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTA533BD61_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="streamWriter"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IServerStreamWriter{``0},System.Collections.Generic.IEnumerable{``0})"]</p></dd><dt><span class="parameter">elements</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/9eekhta0" target="_blank">System.Collections.Generic<span id="LSTA533BD61_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IEnumerable</a><span id="LSTA533BD61_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_11?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTA533BD61_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_12?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="elements"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IServerStreamWriter{``0},System.Collections.Generic.IEnumerable{``0})"]</p></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1(Grpc.Core.IServerStreamWriter{``0},System.Collections.Generic.IEnumerable{``0})"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a><h4 class="subHeading">Usage Note</h4>In Visual Basic and C#, you can call this method as an instance method on any object of type <a href="T_Grpc_Core_IServerStreamWriter_1.htm">IServerStreamWriter</a><span id="LSTA533BD61_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LSTA533BD61_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA533BD61_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>. When you use instance method syntax to call this method, omit the first parameter. For more information, see <a href="http://msdn.microsoft.com/en-us/library/bb384936.aspx" target="_blank">Extension Methods (Visual Basic)</a> or <a href="http://msdn.microsoft.com/en-us/library/bb383977.aspx" target="_blank">Extension Methods (C# Programming Guide)</a>.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm">WriteAllAsync Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm
new file mode 100644
index 0000000000000000000000000000000000000000..47138a00ba1efcd9d97b87804db1f64d3c4d966b
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm
@@ -0,0 +1,20 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>BenchmarkUtil.RunBenchmark Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RunBenchmark method" /><meta name="System.Keywords" content="BenchmarkUtil.RunBenchmark method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.BenchmarkUtil.RunBenchmark" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.BenchmarkUtil.RunBenchmark(System.Int32,System.Int32,System.Action)" /><meta name="Description" content="Runs a simple benchmark preceded by warmup phase." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark" /><meta name="guid" content="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_BenchmarkUtil.htm" title="BenchmarkUtil Class" tocid="T_Grpc_Core_Utils_BenchmarkUtil">BenchmarkUtil Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm" title="BenchmarkUtil Methods" tocid="Methods_T_Grpc_Core_Utils_BenchmarkUtil">BenchmarkUtil Methods</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm" title="RunBenchmark Method " tocid="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark">RunBenchmark Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">BenchmarkUtil<span id="LST916D07CA_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST916D07CA_0?cpp=::|nu=.");</script>RunBenchmark Method </td></tr></table><span class="introStyle"></span><div class="summary">
+            Runs a simple benchmark preceded by warmup phase.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">RunBenchmark</span>(
+	<span class="identifier">int</span> <span class="parameter">warmupIterations</span>,
+	<span class="identifier">int</span> <span class="parameter">benchmarkIterations</span>,
+	<span class="identifier">Action</span> <span class="parameter">action</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Sub</span> <span class="identifier">RunBenchmark</span> ( 
+	<span class="parameter">warmupIterations</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
+	<span class="parameter">benchmarkIterations</span> <span class="keyword">As</span> <span class="identifier">Integer</span>,
+	<span class="parameter">action</span> <span class="keyword">As</span> <span class="identifier">Action</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">RunBenchmark</span>(
+	<span class="identifier">int</span> <span class="parameter">warmupIterations</span>, 
+	<span class="identifier">int</span> <span class="parameter">benchmarkIterations</span>, 
+	<span class="identifier">Action</span>^ <span class="parameter">action</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">RunBenchmark</span> : 
+        <span class="parameter">warmupIterations</span> : <span class="identifier">int</span> * 
+        <span class="parameter">benchmarkIterations</span> : <span class="identifier">int</span> * 
+        <span class="parameter">action</span> : <span class="identifier">Action</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">warmupIterations</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LST916D07CA_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST916D07CA_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="warmupIterations"/&gt; documentation for "M:Grpc.Core.Utils.BenchmarkUtil.RunBenchmark(System.Int32,System.Int32,System.Action)"]</p></dd><dt><span class="parameter">benchmarkIterations</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LST916D07CA_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST916D07CA_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="benchmarkIterations"/&gt; documentation for "M:Grpc.Core.Utils.BenchmarkUtil.RunBenchmark(System.Int32,System.Int32,System.Action)"]</p></dd><dt><span class="parameter">action</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb534741" target="_blank">System<span id="LST916D07CA_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST916D07CA_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Action</a><br /><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;param name="action"/&gt; documentation for "M:Grpc.Core.Utils.BenchmarkUtil.RunBenchmark(System.Int32,System.Int32,System.Action)"]</p></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_BenchmarkUtil.htm">BenchmarkUtil Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckArgument.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckArgument.htm
new file mode 100644
index 0000000000000000000000000000000000000000..067a90ed7cd10e1f8d1ff8d03bb86cdb8d732320
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckArgument.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckArgument Method (Boolean)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.Preconditions.CheckArgument(System.Boolean)" /><meta name="Description" content="Throws if condition is false." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_Preconditions_CheckArgument" /><meta name="guid" content="M_Grpc_Core_Utils_Preconditions_CheckArgument" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm" title="CheckArgument Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckArgument">CheckArgument Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckArgument.htm" title="CheckArgument Method (Boolean)" tocid="M_Grpc_Core_Utils_Preconditions_CheckArgument">CheckArgument Method (Boolean)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm" title="CheckArgument Method (Boolean, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckArgument_1">CheckArgument Method (Boolean, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LST9B182B11_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B182B11_0?cpp=::|nu=.");</script>CheckArgument Method (Boolean)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> if condition is false.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckArgument</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Sub</span> <span class="identifier">CheckArgument</span> ( 
+	<span class="parameter">condition</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckArgument</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">CheckArgument</span> : 
+        <span class="parameter">condition</span> : <span class="identifier">bool</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">condition</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LST9B182B11_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B182B11_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br />The condition.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm">CheckArgument Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4bc9b4e26fe00ffc6aad37d7d7e441fc158de429
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckArgument Method (Boolean, String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.Preconditions.CheckArgument(System.Boolean,System.String)" /><meta name="Description" content="Throws with given message if condition is false." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_Preconditions_CheckArgument_1" /><meta name="guid" content="M_Grpc_Core_Utils_Preconditions_CheckArgument_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm" title="CheckArgument Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckArgument">CheckArgument Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckArgument.htm" title="CheckArgument Method (Boolean)" tocid="M_Grpc_Core_Utils_Preconditions_CheckArgument">CheckArgument Method (Boolean)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm" title="CheckArgument Method (Boolean, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckArgument_1">CheckArgument Method (Boolean, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LSTDE78F4C7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDE78F4C7_0?cpp=::|nu=.");</script>CheckArgument Method (Boolean, String)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> with given message if condition is false.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckArgument</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>,
+	<span class="identifier">string</span> <span class="parameter">errorMessage</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Sub</span> <span class="identifier">CheckArgument</span> ( 
+	<span class="parameter">condition</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>,
+	<span class="parameter">errorMessage</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckArgument</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">errorMessage</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">CheckArgument</span> : 
+        <span class="parameter">condition</span> : <span class="identifier">bool</span> * 
+        <span class="parameter">errorMessage</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">condition</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LSTDE78F4C7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDE78F4C7_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br />The condition.</dd><dt><span class="parameter">errorMessage</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTDE78F4C7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDE78F4C7_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />The error message.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm">CheckArgument Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..71e09518018261378eae38f1cf5e26837a97c41f
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckNotNull(T) Method (T)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.Preconditions.CheckNotNull``1(``0)" /><meta name="Description" content="Throws if reference is null." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1" /><meta name="guid" content="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm" title="CheckNotNull Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull">CheckNotNull Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm" title="CheckNotNull(T) Method (T)" tocid="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1">CheckNotNull(T) Method (T)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm" title="CheckNotNull(T) Method (T, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1">CheckNotNull(T) Method (T, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LST64EC5978_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST64EC5978_0?cpp=::|nu=.");</script>CheckNotNull<span id="LST64EC5978_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST64EC5978_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST64EC5978_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST64EC5978_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (<span class="typeparameter">T</span>)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> T <span class="identifier">CheckNotNull</span>&lt;T&gt;(
+	T <span class="parameter">reference</span>
+)
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">CheckNotNull</span>(<span class="keyword">Of</span> T) ( 
+	<span class="parameter">reference</span> <span class="keyword">As</span> T
+) <span class="keyword">As</span> T</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">static</span> T <span class="identifier">CheckNotNull</span>(
+	T <span class="parameter">reference</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">CheckNotNull</span> : 
+        <span class="parameter">reference</span> : 'T <span class="keyword">-&gt;</span> 'T 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">reference</span></dt><dd>Type: <span class="selflink"><span class="typeparameter">T</span></span><br />The reference.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Utils.Preconditions.CheckNotNull``1(``0)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <span class="selflink"><span class="typeparameter">T</span></span></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm">CheckNotNull Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a8442ff5f9c2befb6b9240a25fc4e845cb9953bc
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm
@@ -0,0 +1,18 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckNotNull(T) Method (T, String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.Preconditions.CheckNotNull``1(``0,System.String)" /><meta name="Description" content="Throws if reference is null." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1" /><meta name="guid" content="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm" title="CheckNotNull Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull">CheckNotNull Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm" title="CheckNotNull(T) Method (T)" tocid="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1">CheckNotNull(T) Method (T)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm" title="CheckNotNull(T) Method (T, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1">CheckNotNull(T) Method (T, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LSTE5BEC16C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE5BEC16C_0?cpp=::|nu=.");</script>CheckNotNull<span id="LSTE5BEC16C_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE5BEC16C_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTE5BEC16C_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE5BEC16C_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Method (<span class="typeparameter">T</span>, String)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> T <span class="identifier">CheckNotNull</span>&lt;T&gt;(
+	T <span class="parameter">reference</span>,
+	<span class="identifier">string</span> <span class="parameter">paramName</span>
+)
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Function</span> <span class="identifier">CheckNotNull</span>(<span class="keyword">Of</span> T) ( 
+	<span class="parameter">reference</span> <span class="keyword">As</span> T,
+	<span class="parameter">paramName</span> <span class="keyword">As</span> <span class="identifier">String</span>
+) <span class="keyword">As</span> T</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">static</span> T <span class="identifier">CheckNotNull</span>(
+	T <span class="parameter">reference</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">paramName</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">CheckNotNull</span> : 
+        <span class="parameter">reference</span> : 'T * 
+        <span class="parameter">paramName</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> 'T 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">reference</span></dt><dd>Type: <span class="selflink"><span class="typeparameter">T</span></span><br />The reference.</dd><dt><span class="parameter">paramName</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LSTE5BEC16C_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE5BEC16C_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />The parameter name.</dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "M:Grpc.Core.Utils.Preconditions.CheckNotNull``1(``0,System.String)"]</p></dd></dl><h4 class="subHeading">Return Value</h4>Type: <span class="selflink"><span class="typeparameter">T</span></span></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm">CheckNotNull Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckState.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckState.htm
new file mode 100644
index 0000000000000000000000000000000000000000..db25a18cc3ae03279088d98edc7876e0e3fd9f1f
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckState.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckState Method (Boolean)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.Preconditions.CheckState(System.Boolean)" /><meta name="Description" content="Throws if condition is false." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_Preconditions_CheckState" /><meta name="guid" content="M_Grpc_Core_Utils_Preconditions_CheckState" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckState.htm" title="CheckState Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckState">CheckState Method </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckState.htm" title="CheckState Method (Boolean)" tocid="M_Grpc_Core_Utils_Preconditions_CheckState">CheckState Method (Boolean)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckState_1.htm" title="CheckState Method (Boolean, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckState_1">CheckState Method (Boolean, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LST7567FB95_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7567FB95_0?cpp=::|nu=.");</script>CheckState Method (Boolean)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> if condition is false.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckState</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Sub</span> <span class="identifier">CheckState</span> ( 
+	<span class="parameter">condition</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckState</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">CheckState</span> : 
+        <span class="parameter">condition</span> : <span class="identifier">bool</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">condition</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LST7567FB95_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7567FB95_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br />The condition.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_Preconditions_CheckState.htm">CheckState Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckState_1.htm b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckState_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..98a215c2aa2ef5ccaf4cbc89f06dd77532bf1575
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_Utils_Preconditions_CheckState_1.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckState Method (Boolean, String)</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.Utils.Preconditions.CheckState(System.Boolean,System.String)" /><meta name="Description" content="Throws with given message if condition is false." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="M_Grpc_Core_Utils_Preconditions_CheckState_1" /><meta name="guid" content="M_Grpc_Core_Utils_Preconditions_CheckState_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckState.htm" title="CheckState Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckState">CheckState Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckState.htm" title="CheckState Method (Boolean)" tocid="M_Grpc_Core_Utils_Preconditions_CheckState">CheckState Method (Boolean)</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckState_1.htm" title="CheckState Method (Boolean, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckState_1">CheckState Method (Boolean, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LST8CA3BEB3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8CA3BEB3_0?cpp=::|nu=.");</script>CheckState Method (Boolean, String)</td></tr></table><span class="introStyle"></span><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> with given message if condition is false.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckState</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>,
+	<span class="identifier">string</span> <span class="parameter">errorMessage</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">Sub</span> <span class="identifier">CheckState</span> ( 
+	<span class="parameter">condition</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>,
+	<span class="parameter">errorMessage</span> <span class="keyword">As</span> <span class="identifier">String</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">CheckState</span>(
+	<span class="identifier">bool</span> <span class="parameter">condition</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">errorMessage</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">CheckState</span> : 
+        <span class="parameter">condition</span> : <span class="identifier">bool</span> * 
+        <span class="parameter">errorMessage</span> : <span class="identifier">string</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span> 
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">condition</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">System<span id="LST8CA3BEB3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8CA3BEB3_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Boolean</a><br />The condition.</dd><dt><span class="parameter">errorMessage</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST8CA3BEB3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8CA3BEB3_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br />The error message.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="Overload_Grpc_Core_Utils_Preconditions_CheckState.htm">CheckState Overload</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/M_Grpc_Core_WriteOptions__ctor.htm b/doc/ref/csharp/html/html/M_Grpc_Core_WriteOptions__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8d09de81080b0c45238af639088a8f2dfad9f005
--- /dev/null
+++ b/doc/ref/csharp/html/html/M_Grpc_Core_WriteOptions__ctor.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteOptions Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions class, constructor" /><meta name="System.Keywords" content="WriteOptions.WriteOptions constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteOptions.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteOptions.WriteOptions" /><meta name="Microsoft.Help.Id" content="M:Grpc.Core.WriteOptions.#ctor(Grpc.Core.WriteFlags)" /><meta name="Description" content="Initializes a new instance of WriteOptions class." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="M_Grpc_Core_WriteOptions__ctor" /><meta name="guid" content="M_Grpc_Core_WriteOptions__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_WriteOptions__ctor.htm" title="WriteOptions Constructor " tocid="M_Grpc_Core_WriteOptions__ctor">WriteOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Properties" tocid="Properties_T_Grpc_Core_WriteOptions">WriteOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Methods" tocid="Methods_T_Grpc_Core_WriteOptions">WriteOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Fields" tocid="Fields_T_Grpc_Core_WriteOptions">WriteOptions Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteOptions Constructor </td></tr></table><span class="introStyle"></span><div class="summary">
+            Initializes a new instance of <span class="code">WriteOptions</span> class.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">WriteOptions</span>(
+	<span class="identifier">WriteFlags</span> <span class="parameter">flags</span> = 
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Sub</span> <span class="identifier">New</span> ( 
+	Optional <span class="parameter">flags</span> <span class="keyword">As</span> <span class="identifier">WriteFlags</span> = 
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="identifier">WriteOptions</span>(
+	<span class="identifier">WriteFlags</span> <span class="parameter">flags</span> = 
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">new</span> : 
+        ?<span class="parameter">flags</span> : <span class="identifier">WriteFlags</span> 
+(* Defaults:
+        <span class="keyword">let </span><span class="identifier">_</span><span class="identifier">flags</span> = defaultArg <span class="identifier">flags</span> 
+*)
+<span class="keyword">-&gt;</span> <span class="identifier">WriteOptions</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">flags</span> (Optional)</dt><dd>Type: <a href="T_Grpc_Core_WriteFlags.htm">Grpc.Core<span id="LST20A2751C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST20A2751C_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>WriteFlags</a><br />The write flags.</dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_WriteOptions.htm">WriteOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Auth_AuthInterceptors.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Auth_AuthInterceptors.htm
new file mode 100644
index 0000000000000000000000000000000000000000..67729e61c1a583716a0e1a5896f7666329bd2471
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Auth_AuthInterceptors.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AuthInterceptors Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AuthInterceptors class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Auth.AuthInterceptors" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Auth" /><meta name="file" content="Methods_T_Grpc_Auth_AuthInterceptors" /><meta name="guid" content="Methods_T_Grpc_Auth_AuthInterceptors" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Auth.htm" title="Grpc.Auth" tocid="N_Grpc_Auth">Grpc.Auth</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Class" tocid="T_Grpc_Auth_AuthInterceptors">AuthInterceptors Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Methods" tocid="Methods_T_Grpc_Auth_AuthInterceptors">AuthInterceptors Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm" title="FromAccessToken Method " tocid="M_Grpc_Auth_AuthInterceptors_FromAccessToken">FromAccessToken Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Auth_AuthInterceptors_FromCredential.htm" title="FromCredential Method " tocid="M_Grpc_Auth_AuthInterceptors_FromCredential">FromCredential Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AuthInterceptors Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Auth_AuthInterceptors.htm">AuthInterceptors</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm">FromAccessToken</a></td><td><div class="summary">
+            Creates OAuth2 interceptor that will use given access token as authorization.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Auth_AuthInterceptors_FromCredential.htm">FromCredential</a></td><td><div class="summary">
+            Creates interceptor that will obtain access token from any credential type that implements
+            <span class="code">ITokenAccess</span>. (e.g. <span class="code">GoogleCredential</span>).
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Auth_AuthInterceptors.htm">AuthInterceptors Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Auth.htm">Grpc.Auth Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1a980e8a2a37475768ff3b4d67645ee9331a1691
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E class, methods" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse) class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.AsyncClientStreamingCall`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_AsyncClientStreamingCall_2" /><meta name="guid" content="Methods_T_Grpc_Core_AsyncClientStreamingCall_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LSTB54A532_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A532_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTB54A532_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A532_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LSTB54A532_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A532_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTB54A532_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A532_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm">GetAwaiter</a></td><td><div class="summary">
+            Allows awaiting this object directly.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LSTB54A532_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A532_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTB54A532_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB54A532_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b52e7bb7c7a96d68870ffe7929abef5cb9d476ff
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E class, methods" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse) class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.AsyncDuplexStreamingCall`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2" /><meta name="guid" content="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LSTAE1A0197_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAE1A0197_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTAE1A0197_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAE1A0197_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LSTAE1A0197_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAE1A0197_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTAE1A0197_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAE1A0197_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and response stream has been fully read), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LSTAE1A0197_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAE1A0197_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTAE1A0197_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTAE1A0197_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c2cbdffe878d0d892e4373b8fe0b4d33b1616ab8
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E class, methods" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse) class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.AsyncServerStreamingCall`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_AsyncServerStreamingCall_1" /><meta name="guid" content="Methods_T_Grpc_Core_AsyncServerStreamingCall_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LST7FD8EB31_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7FD8EB31_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST7FD8EB31_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7FD8EB31_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LST7FD8EB31_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7FD8EB31_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST7FD8EB31_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7FD8EB31_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (response stream has been fully read), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LST7FD8EB31_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7FD8EB31_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST7FD8EB31_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7FD8EB31_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7be009c069493e4925ed7f83e79242bf9a58627a
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E class, methods" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse) class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.AsyncUnaryCall`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_AsyncUnaryCall_1" /><meta name="guid" content="Methods_T_Grpc_Core_AsyncUnaryCall_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" title="Dispose Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_Dispose">Dispose Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" title="GetAwaiter Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter">GetAwaiter Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" title="GetStatus Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetStatus">GetStatus Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" title="GetTrailers Method " tocid="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers">GetTrailers Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LSTB2FF69B1_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2FF69B1_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTB2FF69B1_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2FF69B1_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LSTB2FF69B1_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2FF69B1_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTB2FF69B1_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2FF69B1_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm">GetAwaiter</a></td><td><div class="summary">
+            Allows awaiting this object directly.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LSTB2FF69B1_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2FF69B1_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTB2FF69B1_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB2FF69B1_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2cc225528fa1d1d6fd2ef091a92889f2b7b5e72b
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E structure, methods" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse) structure, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.CallInvocationDetails`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_CallInvocationDetails_2" /><meta name="guid" content="Methods_T_Grpc_Core_CallInvocationDetails_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm" title="WithOptions Method " tocid="M_Grpc_Core_CallInvocationDetails_2_WithOptions">WithOptions Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST196181DB_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST196181DB_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST196181DB_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST196181DB_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ToString</a></td><td><div class="summary">Returns the fully qualified type name of this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm">WithOptions</a></td><td><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST196181DB_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST196181DB_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> with
+            <span class="code">Options</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST196181DB_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST196181DB_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST196181DB_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_CallOptions.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_CallOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f9fe02ed1ce8f3b127ce9f2350fe971e5bb626a8
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_CallOptions.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallOptions structure, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.CallOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_CallOptions" /><meta name="guid" content="Methods_T_Grpc_Core_CallOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallOptions.htm" title="CallOptions Methods" tocid="Methods_T_Grpc_Core_CallOptions">CallOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithCancellationToken.htm" title="WithCancellationToken Method " tocid="M_Grpc_Core_CallOptions_WithCancellationToken">WithCancellationToken Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithDeadline.htm" title="WithDeadline Method " tocid="M_Grpc_Core_CallOptions_WithDeadline">WithDeadline Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions_WithHeaders.htm" title="WithHeaders Method " tocid="M_Grpc_Core_CallOptions_WithHeaders">WithHeaders Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ToString</a></td><td><div class="summary">Returns the fully qualified type name of this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallOptions_WithCancellationToken.htm">WithCancellationToken</a></td><td><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> with
+            <span class="code">CancellationToken</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallOptions_WithDeadline.htm">WithDeadline</a></td><td><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> with
+            <span class="code">Deadline</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallOptions_WithHeaders.htm">WithHeaders</a></td><td><div class="summary">
+            Returns new instance of <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> with
+            <span class="code">Headers</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Calls.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Calls.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8933af3feae82bca7e02add8ef2915a2a1aece74
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Calls.htm
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Calls Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Calls class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Calls" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Calls" /><meta name="guid" content="Methods_T_Grpc_Core_Calls" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Calls.htm" title="Calls Methods" tocid="Methods_T_Grpc_Core_Calls">Calls Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncClientStreamingCall__2">AsyncClientStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2">AsyncDuplexStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" title="AsyncServerStreamingCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncServerStreamingCall__2">AsyncServerStreamingCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" title="AsyncUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_AsyncUnaryCall__2">AsyncUnaryCall(TRequest, TResponse) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" title="BlockingUnaryCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_Calls_BlockingUnaryCall__2">BlockingUnaryCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Calls Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Calls.htm">Calls</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm">AsyncClientStreamingCall<span id="LST141FFE22_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST141FFE22_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a client streaming call asynchronously.
+            In client streaming scenario, client sends a stream of requests and server responds with a single response.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm">AsyncDuplexStreamingCall<span id="LST141FFE22_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST141FFE22_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a duplex streaming call asynchronously.
+            In duplex streaming scenario, client sends a stream of requests and server responds with a stream of responses.
+            The response stream is completely independent and both side can be sending messages at the same time.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm">AsyncServerStreamingCall<span id="LST141FFE22_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST141FFE22_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a server streaming call asynchronously.
+            In server streaming scenario, client sends on request and server responds with a stream of responses.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm">AsyncUnaryCall<span id="LST141FFE22_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST141FFE22_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a simple remote call asynchronously.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm">BlockingUnaryCall<span id="LST141FFE22_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST141FFE22_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST141FFE22_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a simple remote call in a blocking fashion.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Calls.htm">Calls Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Channel.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Channel.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5aa7e521756c4321f58b8b239d730f04fb9dab5f
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Channel.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Channel class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Channel" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Channel" /><meta name="guid" content="Methods_T_Grpc_Core_Channel" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Channel.htm" title="Channel Methods" tocid="Methods_T_Grpc_Core_Channel">Channel Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ConnectAsync.htm" title="ConnectAsync Method " tocid="M_Grpc_Core_Channel_ConnectAsync">ConnectAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Channel_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" title="WaitForStateChangedAsync Method " tocid="M_Grpc_Core_Channel_WaitForStateChangedAsync">WaitForStateChangedAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Channel.htm">Channel</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel_ConnectAsync.htm">ConnectAsync</a></td><td><div class="summary">
+            Allows explicitly requesting channel to connect without starting an RPC.
+            Returned task completes once state Ready was seen. If the deadline is reached,
+            or channel enters the FatalFailure state, the task is cancelled.
+            There is no need to call this explicitly unless your use case requires that.
+            Starting an RPC on a new channel will request connection implicitly.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel_ShutdownAsync.htm">ShutdownAsync</a></td><td><div class="summary">
+            Waits until there are no more active calls for this channel and then cleans up
+            resources used by this channel.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel_WaitForStateChangedAsync.htm">WaitForStateChangedAsync</a></td><td><div class="summary">
+            Returned tasks completes once channel state has become different from 
+            given lastObservedState. 
+            If deadline is reached or and error occurs, returned task is cancelled.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ChannelOption.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ChannelOption.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4629b7a4a30033f987593723d9d18c34986bcc5a
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ChannelOption.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelOption class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ChannelOption" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ChannelOption" /><meta name="guid" content="Methods_T_Grpc_Core_ChannelOption" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor " tocid="Overload_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Properties" tocid="Properties_T_Grpc_Core_ChannelOption">ChannelOption Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Methods" tocid="Methods_T_Grpc_Core_ChannelOption">ChannelOption Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ChannelOption.htm">ChannelOption</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ClientBase.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ClientBase.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b0f38c947f5a6366b579a071a5434b86448b3682
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ClientBase.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ClientBase class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ClientBase" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ClientBase" /><meta name="guid" content="Methods_T_Grpc_Core_ClientBase" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ClientBase.htm" title="ClientBase Methods" tocid="Methods_T_Grpc_Core_ClientBase">ClientBase Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ClientBase_CreateCall__2.htm" title="CreateCall(TRequest, TResponse) Method " tocid="M_Grpc_Core_ClientBase_CreateCall__2">CreateCall(TRequest, TResponse) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ClientBase.htm">ClientBase</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="protected;declared;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_Grpc_Core_ClientBase_CreateCall__2.htm">CreateCall<span id="LST805621DD_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST805621DD_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST805621DD_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST805621DD_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Creates a new call to given method.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ClientBase.htm">ClientBase Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ContextPropagationOptions.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ContextPropagationOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..abc1abbea8fac312cf522a201bb1d8f4a583c4cc
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ContextPropagationOptions.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ContextPropagationOptions class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ContextPropagationOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ContextPropagationOptions" /><meta name="guid" content="Methods_T_Grpc_Core_ContextPropagationOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ContextPropagationOptions__ctor.htm" title="ContextPropagationOptions Constructor " tocid="M_Grpc_Core_ContextPropagationOptions__ctor">ContextPropagationOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Properties" tocid="Properties_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Methods" tocid="Methods_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Fields" tocid="Fields_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ContextPropagationToken.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ContextPropagationToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0bf0e221adc3b5f3327215d1e539bd4d0bcb8ab6
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ContextPropagationToken.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationToken Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ContextPropagationToken class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ContextPropagationToken" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ContextPropagationToken" /><meta name="guid" content="Methods_T_Grpc_Core_ContextPropagationToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Methods" tocid="Methods_T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationToken Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ContextPropagationToken.htm">ContextPropagationToken</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationToken.htm">ContextPropagationToken Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Credentials.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Credentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2ab1c23063025cc5ab03a25bb200442a778e3152
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Credentials.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Credentials Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Credentials class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Credentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Credentials" /><meta name="guid" content="Methods_T_Grpc_Core_Credentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Credentials__ctor.htm" title="Credentials Constructor " tocid="M_Grpc_Core_Credentials__ctor">Credentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Credentials.htm" title="Credentials Properties" tocid="Properties_T_Grpc_Core_Credentials">Credentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Credentials.htm" title="Credentials Methods" tocid="Methods_T_Grpc_Core_Credentials">Credentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Credentials Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Credentials.htm">Credentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Credentials.htm">Credentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_GrpcEnvironment.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_GrpcEnvironment.htm
new file mode 100644
index 0000000000000000000000000000000000000000..56aede9447093e5aa7c84b13b71d14951c9c3c61
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_GrpcEnvironment.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GrpcEnvironment Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GrpcEnvironment class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.GrpcEnvironment" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_GrpcEnvironment" /><meta name="guid" content="Methods_T_Grpc_Core_GrpcEnvironment" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Methods" tocid="Methods_T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_GrpcEnvironment_SetLogger.htm" title="SetLogger Method " tocid="M_Grpc_Core_GrpcEnvironment_SetLogger">SetLogger Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">GrpcEnvironment Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_GrpcEnvironment.htm">GrpcEnvironment</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_GrpcEnvironment_SetLogger.htm">SetLogger</a></td><td><div class="summary">
+            Sets the application-wide logger that should be used by gRPC.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_GrpcEnvironment.htm">GrpcEnvironment Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9ccee5b4b6d0ce5d099f8dd501e2307b70bac7e1
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamReader(T) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IAsyncStreamReader%3CT%3E interface, methods" /><meta name="System.Keywords" content="IAsyncStreamReader(Of T) interface, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.IAsyncStreamReader`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_IAsyncStreamReader_1" /><meta name="guid" content="Methods_T_Grpc_Core_IAsyncStreamReader_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Properties" tocid="Properties_T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Methods" tocid="Methods_T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamReader<span id="LSTFECD0C64_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTFECD0C64_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader<span id="LSTFECD0C64_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTFECD0C64_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/es4s3w1d" target="_blank">Dispose</a></td><td><div class="summary">Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aax125c9" target="_blank">IDisposable</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><span class="nolink">MoveNext</span></td><td> (Inherited from <span class="nolink">IAsyncEnumerator</span><span id="LSTFECD0C64_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_IAsyncStreamReader_1.htm"><span class="typeparameter">T</span></a><span id="LSTFECD0C64_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Extension Methods</span></div><div id="ID1RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm">ForEachAsync<span id="LSTFECD0C64_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LSTFECD0C64_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and executes an async action for each element.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm">ToListAsync<span id="LSTFECD0C64_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LSTFECD0C64_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and creates a list containing all the elements read.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader<span id="LSTFECD0C64_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_10?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTFECD0C64_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFECD0C64_11?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f69951fdf013a083ad2bd63ed25af0afa88c4704
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamWriter(T) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IAsyncStreamWriter%3CT%3E interface, methods" /><meta name="System.Keywords" content="IAsyncStreamWriter(Of T) interface, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.IAsyncStreamWriter`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_IAsyncStreamWriter_1" /><meta name="guid" content="Methods_T_Grpc_Core_IAsyncStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm" title="WriteAsync Method " tocid="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync">WriteAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamWriter<span id="LST736674CC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736674CC_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST736674CC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736674CC_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST736674CC_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736674CC_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST736674CC_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736674CC_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm">WriteAsync</a></td><td><div class="summary">
+            Writes a single asynchronously. Only one write can be pending at a time.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST736674CC_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736674CC_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST736674CC_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST736674CC_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..271b5cf2513b36ae19c1721a6ad2025fcef65b30
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IClientStreamWriter(T) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IClientStreamWriter%3CT%3E interface, methods" /><meta name="System.Keywords" content="IClientStreamWriter(Of T) interface, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.IClientStreamWriter`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_IClientStreamWriter_1" /><meta name="guid" content="Methods_T_Grpc_Core_IClientStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm" title="CompleteAsync Method " tocid="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync">CompleteAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IClientStreamWriter<span id="LST9AAAD0F7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST9AAAD0F7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter<span id="LST9AAAD0F7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9AAAD0F7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm">CompleteAsync</a></td><td><div class="summary">
+            Completes/closes the stream. Can only be called once there is no pending write. No writes should follow calling this.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm">WriteAsync</a></td><td><div class="summary">
+            Writes a single asynchronously. Only one write can be pending at a time.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST9AAAD0F7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9AAAD0F7_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Extension Methods</span></div><div id="ID1RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm">WriteAllAsync<span id="LST9AAAD0F7_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST9AAAD0F7_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            Completes the stream afterwards unless close = false.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter<span id="LST9AAAD0F7_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9AAAD0F7_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9AAAD0F7_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9ab9b0d00fd51b17c9ff3ad04633dd621c3d8787
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IServerStreamWriter(T) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IServerStreamWriter%3CT%3E interface, methods" /><meta name="System.Keywords" content="IServerStreamWriter(Of T) interface, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.IServerStreamWriter`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_IServerStreamWriter_1" /><meta name="guid" content="Methods_T_Grpc_Core_IServerStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IServerStreamWriter<span id="LST555FD703_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST555FD703_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IServerStreamWriter_1.htm">IServerStreamWriter<span id="LST555FD703_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST555FD703_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm">WriteAsync</a></td><td><div class="summary">
+            Writes a single asynchronously. Only one write can be pending at a time.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST555FD703_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST555FD703_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Extension Methods</span></div><div id="ID1RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm">WriteAllAsync<span id="LST555FD703_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST555FD703_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IServerStreamWriter_1.htm">IServerStreamWriter<span id="LST555FD703_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST555FD703_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST555FD703_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_KeyCertificatePair.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_KeyCertificatePair.htm
new file mode 100644
index 0000000000000000000000000000000000000000..31988564f9100f86b984fbe3bcac65538469e901
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_KeyCertificatePair.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>KeyCertificatePair Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="KeyCertificatePair class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.KeyCertificatePair" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_KeyCertificatePair" /><meta name="guid" content="Methods_T_Grpc_Core_KeyCertificatePair" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_KeyCertificatePair__ctor.htm" title="KeyCertificatePair Constructor " tocid="M_Grpc_Core_KeyCertificatePair__ctor">KeyCertificatePair Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Properties" tocid="Properties_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Methods" tocid="Methods_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">KeyCertificatePair Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5ee03065d1ec00463f3b69be776f88ee36640024
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ConsoleLogger class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Logging.ConsoleLogger" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="Methods_T_Grpc_Core_Logging_ConsoleLogger" /><meta name="guid" content="Methods_T_Grpc_Core_Logging_ConsoleLogger" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ConsoleLogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Debug.htm">Debug</a></td><td><div class="summary">Logs a message with severity Debug.</div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm">Error(String, <span id="LSTF124503F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_0?cpp=array&lt;");</script>Object<span id="LSTF124503F_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_1?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Error.htm">Error(Exception, String, <span id="LSTF124503F_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_2?cpp=array&lt;");</script>Object<span id="LSTF124503F_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_3?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Error.</div></td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm">ForType<span id="LSTF124503F_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LSTF124503F_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Returns a logger associated with the specified type.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Info.htm">Info</a></td><td><div class="summary">Logs a message with severity Info.</div></td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm">Warning(String, <span id="LSTF124503F_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_6?cpp=array&lt;");</script>Object<span id="LSTF124503F_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_7?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Warning.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Warning.htm">Warning(Exception, String, <span id="LSTF124503F_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_8?cpp=array&lt;");</script>Object<span id="LSTF124503F_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF124503F_9?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Warning.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Logging_ILogger.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Logging_ILogger.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0f4357be401b92a614b65e78a14484eb79adea83
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Logging_ILogger.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ILogger interface, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Logging.ILogger" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="Methods_T_Grpc_Core_Logging_ILogger" /><meta name="guid" content="Methods_T_Grpc_Core_Logging_ILogger" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Debug.htm" title="Debug Method " tocid="M_Grpc_Core_Logging_ILogger_Debug">Debug Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ILogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_ForType__1.htm" title="ForType(T) Method " tocid="M_Grpc_Core_Logging_ILogger_ForType__1">ForType(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Info.htm" title="Info Method " tocid="M_Grpc_Core_Logging_ILogger_Info">Info Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ILogger_Warning">Warning Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Logging_ILogger.htm">ILogger</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Debug.htm">Debug</a></td><td><div class="summary">Logs a message with severity Debug.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Error_1.htm">Error(String, <span id="LSTE3256261_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_0?cpp=array&lt;");</script>Object<span id="LSTE3256261_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_1?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Error.htm">Error(Exception, String, <span id="LSTE3256261_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_2?cpp=array&lt;");</script>Object<span id="LSTE3256261_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_3?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_ForType__1.htm">ForType<span id="LSTE3256261_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LSTE3256261_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">Returns a logger associated with the specified type.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Info.htm">Info</a></td><td><div class="summary">Logs a message with severity Info.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Warning_1.htm">Warning(String, <span id="LSTE3256261_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_6?cpp=array&lt;");</script>Object<span id="LSTE3256261_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_7?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Warning.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Warning.htm">Warning(Exception, String, <span id="LSTE3256261_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_8?cpp=array&lt;");</script>Object<span id="LSTE3256261_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE3256261_9?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Warning.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Marshaller_1.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Marshaller_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..127f58079d7c63157665129f1a8c7ac598298b40
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Marshaller_1.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshaller(T) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Marshaller%3CT%3E structure, methods" /><meta name="System.Keywords" content="Marshaller(Of T) structure, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Marshaller`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Marshaller_1" /><meta name="guid" content="Methods_T_Grpc_Core_Marshaller_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Marshaller_1__ctor.htm" title="Marshaller(T) Constructor " tocid="M_Grpc_Core_Marshaller_1__ctor">Marshaller(T) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Properties" tocid="Properties_T_Grpc_Core_Marshaller_1">Marshaller(T) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Methods" tocid="Methods_T_Grpc_Core_Marshaller_1">Marshaller(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshaller<span id="LST9643DA0B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9643DA0B_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST9643DA0B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9643DA0B_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LST9643DA0B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9643DA0B_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9643DA0B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9643DA0B_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ToString</a></td><td><div class="summary">Returns the fully qualified type name of this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LST9643DA0B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9643DA0B_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9643DA0B_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9643DA0B_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Marshallers.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Marshallers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..aa8491ca2f56e5ec2763de29bd9a374469a4a796
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Marshallers.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshallers Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Marshallers class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Marshallers" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Marshallers" /><meta name="guid" content="Methods_T_Grpc_Core_Marshallers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Marshallers.htm" title="Marshallers Methods" tocid="Methods_T_Grpc_Core_Marshallers">Marshallers Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Marshallers_Create__1.htm" title="Create(T) Method " tocid="M_Grpc_Core_Marshallers_Create__1">Create(T) Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshallers Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Marshallers.htm">Marshallers</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Marshallers_Create__1.htm">Create<span id="LSTE65BE31_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE65BE31_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LSTE65BE31_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE65BE31_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Creates a marshaller from specified serializer and deserializer.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshallers.htm">Marshallers Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Metadata.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Metadata.htm
new file mode 100644
index 0000000000000000000000000000000000000000..aacbe035f789fc6782fb2e43ab3785cb16170275
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Metadata.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Metadata class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Metadata" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Metadata" /><meta name="guid" content="Methods_T_Grpc_Core_Metadata" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Clear.htm" title="Clear Method " tocid="M_Grpc_Core_Metadata_Clear">Clear Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Contains.htm" title="Contains Method " tocid="M_Grpc_Core_Metadata_Contains">Contains Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_CopyTo.htm" title="CopyTo Method " tocid="M_Grpc_Core_Metadata_CopyTo">CopyTo Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Metadata_GetEnumerator">GetEnumerator Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_IndexOf.htm" title="IndexOf Method " tocid="M_Grpc_Core_Metadata_IndexOf">IndexOf Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Insert.htm" title="Insert Method " tocid="M_Grpc_Core_Metadata_Insert">Insert Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Remove.htm" title="Remove Method " tocid="M_Grpc_Core_Metadata_Remove">Remove Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_RemoveAt.htm" title="RemoveAt Method " tocid="M_Grpc_Core_Metadata_RemoveAt">RemoveAt Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Metadata.htm">Metadata</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add.htm">Add(Metadata<span id="LSTEBEE00C8_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBEE00C8_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add_1.htm">Add(String, <span id="LSTEBEE00C8_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBEE00C8_1?cpp=array&lt;");</script>Byte<span id="LSTEBEE00C8_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEBEE00C8_2?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add_2.htm">Add(String, String)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Clear.htm">Clear</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Contains.htm">Contains</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_CopyTo.htm">CopyTo</a></td><td /></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_GetEnumerator.htm">GetEnumerator</a></td><td /></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_IndexOf.htm">IndexOf</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Insert.htm">Insert</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Remove.htm">Remove</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_RemoveAt.htm">RemoveAt</a></td><td /></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Metadata_Entry.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Metadata_Entry.htm
new file mode 100644
index 0000000000000000000000000000000000000000..44e0cd1fa05c4c7ad17ecc3450ec00213a2df073
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Metadata_Entry.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Entry Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Entry structure, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Metadata.Entry" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Metadata_Entry" /><meta name="guid" content="Methods_T_Grpc_Core_Metadata_Entry" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata_Entry.htm" title="Entry Methods" tocid="Methods_T_Grpc_Core_Metadata_Entry">Entry Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry_ToString.htm" title="ToString Method " tocid="M_Grpc_Core_Metadata_Entry_ToString">ToString Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Entry Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST12C96E1E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST12C96E1E_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Entry_ToString.htm">ToString</a></td><td><div class="summary">
+            Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST12C96E1E_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST12C96E1E_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a>.
+            </div> (Overrides <a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ValueType<span id="LST12C96E1E_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST12C96E1E_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ToString<span id="LST12C96E1E_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST12C96E1E_3?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST12C96E1E_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST12C96E1E_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Method_2.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Method_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b4b0b5cc6317cc49d6cc345e471bfcdef8d866ec
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Method_2.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse) Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E class, methods" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse) class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Method`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Method_2" /><meta name="guid" content="Methods_T_Grpc_Core_Method_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Method_2__ctor.htm" title="Method(TRequest, TResponse) Constructor " tocid="M_Grpc_Core_Method_2__ctor">Method(TRequest, TResponse) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LSTCE77B052_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCE77B052_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTCE77B052_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCE77B052_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Method_2.htm">Method<span id="LSTCE77B052_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCE77B052_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTCE77B052_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCE77B052_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LSTCE77B052_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCE77B052_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTCE77B052_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCE77B052_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_RpcException.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_RpcException.htm
new file mode 100644
index 0000000000000000000000000000000000000000..83c86a82066c4042288cacf2613cc5e8364f778d
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_RpcException.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RpcException class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.RpcException" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_RpcException" /><meta name="guid" content="Methods_T_Grpc_Core_RpcException" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor " tocid="Overload_Grpc_Core_RpcException__ctor">RpcException Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_RpcException.htm" title="RpcException Properties" tocid="Properties_T_Grpc_Core_RpcException">RpcException Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_RpcException.htm" title="RpcException Methods" tocid="Methods_T_Grpc_Core_RpcException">RpcException Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Events_T_Grpc_Core_RpcException.htm" title="RpcException Events" tocid="Events_T_Grpc_Core_RpcException">RpcException Events</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_RpcException.htm">RpcException</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/49kcee3b" target="_blank">GetBaseException</a></td><td><div class="summary">When overridden in a derived class, returns the <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a> that is the root cause of one or more subsequent exceptions.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/fwb1489e" target="_blank">GetObjectData</a></td><td><div class="summary">When overridden in a derived class, sets the <a href="http://msdn2.microsoft.com/en-us/library/a9b6042e" target="_blank">SerializationInfo</a> with information about the exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/44zb316t" target="_blank">GetType</a></td><td><div class="summary">Gets the runtime type of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/es4y6f7e" target="_blank">ToString</a></td><td><div class="summary">Creates and returns a string representation of the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_RpcException.htm">RpcException Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server.htm
new file mode 100644
index 0000000000000000000000000000000000000000..bf2e344c91e788b4f627b038225e28d6d999a474
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Server class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Server" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Server" /><meta name="guid" content="Methods_T_Grpc_Core_Server" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server.htm" title="Server Methods" tocid="Methods_T_Grpc_Core_Server">Server Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_KillAsync.htm" title="KillAsync Method " tocid="M_Grpc_Core_Server_KillAsync">KillAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ShutdownAsync.htm" title="ShutdownAsync Method " tocid="M_Grpc_Core_Server_ShutdownAsync">ShutdownAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_Start.htm" title="Start Method " tocid="M_Grpc_Core_Server_Start">Start Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Server.htm">Server</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_KillAsync.htm">KillAsync</a></td><td><div class="summary">
+            Requests server shutdown while cancelling all the in-progress calls.
+            The returned task finishes when shutdown procedure is complete.
+            </div></td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ShutdownAsync.htm">ShutdownAsync</a></td><td><div class="summary">
+            Requests server shutdown and when there are no more calls being serviced,
+            cleans up used resources. The returned task finishes when shutdown procedure
+            is complete.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_Start.htm">Start</a></td><td><div class="summary">
+            Starts the server.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerCallContext.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerCallContext.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a55e4815e5afe0cb867362f228aebee30dee18ce
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerCallContext.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerCallContext class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ServerCallContext" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ServerCallContext" /><meta name="guid" content="Methods_T_Grpc_Core_ServerCallContext" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Methods" tocid="Methods_T_Grpc_Core_ServerCallContext">ServerCallContext Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm" title="CreatePropagationToken Method " tocid="M_Grpc_Core_ServerCallContext_CreatePropagationToken">CreatePropagationToken Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm" title="WriteResponseHeadersAsync Method " tocid="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync">WriteResponseHeadersAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm">CreatePropagationToken</a></td><td><div class="summary">
+            Creates a propagation token to be used to propagate call context to a child call.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm">WriteResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronously sends response headers for the current call to the client. This method may only be invoked once for each call and needs to be invoked
+            before any response messages are written. Writing the first response message implicitly sends empty response headers if <span class="code">WriteResponseHeadersAsync</span> haven't
+            been called yet.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerCredentials.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c603f7c234fab97d9ed597fbcd15f52823e2488a
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerCredentials.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCredentials Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerCredentials class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ServerCredentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ServerCredentials" /><meta name="guid" content="Methods_T_Grpc_Core_ServerCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCredentials__ctor.htm" title="ServerCredentials Constructor " tocid="M_Grpc_Core_ServerCredentials__ctor">ServerCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Properties" tocid="Properties_T_Grpc_Core_ServerCredentials">ServerCredentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Methods" tocid="Methods_T_Grpc_Core_ServerCredentials">ServerCredentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCredentials Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerPort.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerPort.htm
new file mode 100644
index 0000000000000000000000000000000000000000..87d83868f72f4fff9b02a2ceca1d8e07f005ec40
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerPort.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerPort class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ServerPort" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ServerPort" /><meta name="guid" content="Methods_T_Grpc_Core_ServerPort" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerPort__ctor.htm" title="ServerPort Constructor " tocid="M_Grpc_Core_ServerPort__ctor">ServerPort Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ServerPort.htm" title="ServerPort Methods" tocid="Methods_T_Grpc_Core_ServerPort">ServerPort Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ServerPort.htm" title="ServerPort Fields" tocid="Fields_T_Grpc_Core_ServerPort">ServerPort Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerPort.htm">ServerPort</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerServiceDefinition.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerServiceDefinition.htm
new file mode 100644
index 0000000000000000000000000000000000000000..11b14918718dd1a988a666a29d2f34b49c35d416
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerServiceDefinition.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerServiceDefinition class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ServerServiceDefinition" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ServerServiceDefinition" /><meta name="guid" content="Methods_T_Grpc_Core_ServerServiceDefinition" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm" title="CreateBuilder Method " tocid="M_Grpc_Core_ServerServiceDefinition_CreateBuilder">CreateBuilder Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm">CreateBuilder</a></td><td><div class="summary">
+            Creates a new builder object for <span class="code">ServerServiceDefinition</span>.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm
new file mode 100644
index 0000000000000000000000000000000000000000..dccc51fe172df5405b5a5be0227d3d5189b5f5f3
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Builder Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Builder class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.ServerServiceDefinition.Builder" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_ServerServiceDefinition_Builder" /><meta name="guid" content="Methods_T_Grpc_Core_ServerServiceDefinition_Builder" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" title="AddMethod Method " tocid="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod">AddMethod Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm" title="Build Method " tocid="M_Grpc_Core_ServerServiceDefinition_Builder_Build">Build Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Builder Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LSTBC1182BB_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm">AddMethod<span id="LSTBC1182BB_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LSTBC1182BB_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ClientStreamingServerMethod<span id="LSTBC1182BB_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a client streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm">AddMethod<span id="LSTBC1182BB_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_7?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_8?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LSTBC1182BB_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_9?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_10?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, DuplexStreamingServerMethod<span id="LSTBC1182BB_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_11?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_12?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a bidirectional streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm">AddMethod<span id="LSTBC1182BB_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LSTBC1182BB_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_15?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_16?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ServerStreamingServerMethod<span id="LSTBC1182BB_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_17?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_18?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a server streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm">AddMethod<span id="LSTBC1182BB_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_19?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_20?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LSTBC1182BB_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_21?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_22"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_22?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, UnaryServerMethod<span id="LSTBC1182BB_23"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_23?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTBC1182BB_24"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_24?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a single request - single response method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm">Build</a></td><td><div class="summary">
+            Creates an immutable <span class="code">ServerServiceDefinition</span> from this builder.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LSTBC1182BB_25"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBC1182BB_25?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b8e44358fb155a4c1c92104e5ffe145a701e2334
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPortCollection Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerPortCollection class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Server.ServerPortCollection" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Server_ServerPortCollection" /><meta name="guid" content="Methods_T_Grpc_Core_Server_ServerPortCollection" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServerPortCollection.htm" title="ServerPortCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServerPortCollection">ServerPortCollection Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Server_ServerPortCollection_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator">GetEnumerator Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPortCollection Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LSTBAF264D0_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBAF264D0_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_Add.htm">Add(ServerPort)</a></td><td><div class="summary">
+            Adds a new port on which server should listen.
+            Only call this before Start().
+            <h4 class="subHeading">Return Value</h4>Type: <br />The port on which server will be listening.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_Add_1.htm">Add(String, Int32, ServerCredentials)</a></td><td><div class="summary">
+            Adds a new port on which server should listen.
+            <h4 class="subHeading">Return Value</h4>Type: <br />The port on which server will be listening.</div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm">GetEnumerator</a></td><td><div class="summary">
+            Gets enumerator for this collection.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LSTBAF264D0_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBAF264D0_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm
new file mode 100644
index 0000000000000000000000000000000000000000..08c940b83167124b57c864af08624a419b14b8a2
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServiceDefinitionCollection Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServiceDefinitionCollection class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Server.ServiceDefinitionCollection" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection" /><meta name="guid" content="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="ServiceDefinitionCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection">ServiceDefinitionCollection Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm" title="Add Method " tocid="M_Grpc_Core_Server_ServiceDefinitionCollection_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm" title="GetEnumerator Method " tocid="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator">GetEnumerator Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServiceDefinitionCollection Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm">Server<span id="LSTCF6FB296_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCF6FB296_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm">Add</a></td><td><div class="summary">
+            Adds a service definition to the server. This is how you register
+            handlers for a service with the server. Only call this before Start().
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm">GetEnumerator</a></td><td><div class="summary">
+            Gets enumerator for this collection.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm">Server<span id="LSTCF6FB296_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCF6FB296_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_SslCredentials.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_SslCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b4ef394fbe7075723818dae91accb0fd69d0f599
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_SslCredentials.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslCredentials class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.SslCredentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_SslCredentials" /><meta name="guid" content="Methods_T_Grpc_Core_SslCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="Overload_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslCredentials.htm" title="SslCredentials Properties" tocid="Properties_T_Grpc_Core_SslCredentials">SslCredentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_SslCredentials.htm" title="SslCredentials Methods" tocid="Methods_T_Grpc_Core_SslCredentials">SslCredentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_SslCredentials.htm">SslCredentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_SslServerCredentials.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_SslServerCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cbe8f3e41ff6cf3dbea54014bcdd39e16aeb80b1
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_SslServerCredentials.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslServerCredentials class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.SslServerCredentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_SslServerCredentials" /><meta name="guid" content="Methods_T_Grpc_Core_SslServerCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor " tocid="Overload_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Properties" tocid="Properties_T_Grpc_Core_SslServerCredentials">SslServerCredentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Methods" tocid="Methods_T_Grpc_Core_SslServerCredentials">SslServerCredentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Status.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Status.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8a477adba015645c43c8a07784f745178f2b1d3d
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Status.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Status structure, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Status" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_Status" /><meta name="guid" content="Methods_T_Grpc_Core_Status" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Status.htm" title="Status Methods" tocid="Methods_T_Grpc_Core_Status">Status Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Status_ToString.htm" title="ToString Method " tocid="M_Grpc_Core_Status_ToString">ToString Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Status.htm">Status</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Status_ToString.htm">ToString</a></td><td><div class="summary">
+            Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <a href="T_Grpc_Core_Status.htm">Status</a>.
+            </div> (Overrides <a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ValueType<span id="LST11F02AB9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST11F02AB9_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ToString<span id="LST11F02AB9_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST11F02AB9_1?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..bade3e79f220a6ec280ff6232c02b0ecfb773e0f
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncStreamExtensions Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncStreamExtensions class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Utils.AsyncStreamExtensions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions" /><meta name="guid" content="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Methods" tocid="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" title="ForEachAsync(T) Method " tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1">ForEachAsync(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" title="ToListAsync(T) Method " tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1">ToListAsync(T) Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" title="WriteAllAsync Method " tocid="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync">WriteAllAsync Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncStreamExtensions Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm">ForEachAsync<span id="LST3F5F5CD6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and executes an async action for each element.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm">ToListAsync<span id="LST3F5F5CD6_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and creates a list containing all the elements read.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm">WriteAllAsync<span id="LST3F5F5CD6_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(IServerStreamWriter<span id="LST3F5F5CD6_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LST3F5F5CD6_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm">WriteAllAsync<span id="LST3F5F5CD6_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_10?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(IClientStreamWriter<span id="LST3F5F5CD6_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_12?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_13?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LST3F5F5CD6_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_14?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST3F5F5CD6_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3F5F5CD6_15?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Boolean)</a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            Completes the stream afterwards unless close = false.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cf12124a285c5581cc41b261b0e016f216c1324e
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>BenchmarkUtil Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="BenchmarkUtil class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Utils.BenchmarkUtil" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="Methods_T_Grpc_Core_Utils_BenchmarkUtil" /><meta name="guid" content="Methods_T_Grpc_Core_Utils_BenchmarkUtil" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_BenchmarkUtil.htm" title="BenchmarkUtil Class" tocid="T_Grpc_Core_Utils_BenchmarkUtil">BenchmarkUtil Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm" title="BenchmarkUtil Methods" tocid="Methods_T_Grpc_Core_Utils_BenchmarkUtil">BenchmarkUtil Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm" title="RunBenchmark Method " tocid="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark">RunBenchmark Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">BenchmarkUtil Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Utils_BenchmarkUtil.htm">BenchmarkUtil</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm">RunBenchmark</a></td><td><div class="summary">
+            Runs a simple benchmark preceded by warmup phase.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_BenchmarkUtil.htm">BenchmarkUtil Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_Preconditions.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_Preconditions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9b150653cb9940a57f6ed070d83007ca766a376e
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_Utils_Preconditions.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Preconditions class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.Utils.Preconditions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="Methods_T_Grpc_Core_Utils_Preconditions" /><meta name="guid" content="Methods_T_Grpc_Core_Utils_Preconditions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm" title="CheckArgument Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckArgument">CheckArgument Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm" title="CheckNotNull Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull">CheckNotNull Method </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckState.htm" title="CheckState Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckState">CheckState Method </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions Methods</td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckArgument.htm">CheckArgument(Boolean)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm">CheckArgument(Boolean, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> with given message if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm">CheckNotNull<span id="LST65D0D273_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST65D0D273_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST65D0D273_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST65D0D273_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(T)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm">CheckNotNull<span id="LST65D0D273_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST65D0D273_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST65D0D273_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST65D0D273_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(T, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckState.htm">CheckState(Boolean)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckState_1.htm">CheckState(Boolean, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> with given message if condition is false.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Methods_T_Grpc_Core_WriteOptions.htm b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..abfae7f92a89ddcd90172222b0365358bb340d66
--- /dev/null
+++ b/doc/ref/csharp/html/html/Methods_T_Grpc_Core_WriteOptions.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteOptions Methods</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions class, methods" /><meta name="Microsoft.Help.Id" content="Methods.T:Grpc.Core.WriteOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Methods_T_Grpc_Core_WriteOptions" /><meta name="guid" content="Methods_T_Grpc_Core_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_WriteOptions__ctor.htm" title="WriteOptions Constructor " tocid="M_Grpc_Core_WriteOptions__ctor">WriteOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Properties" tocid="Properties_T_Grpc_Core_WriteOptions">WriteOptions Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Methods" tocid="Methods_T_Grpc_Core_WriteOptions">WriteOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Fields" tocid="Fields_T_Grpc_Core_WriteOptions">WriteOptions Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteOptions Methods</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_WriteOptions.htm">WriteOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/N_Grpc_Auth.htm b/doc/ref/csharp/html/html/N_Grpc_Auth.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2b80dc68bd1d648e48e845221571f1e59a9d67ef
--- /dev/null
+++ b/doc/ref/csharp/html/html/N_Grpc_Auth.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Grpc.Auth Namespace</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Grpc.Auth namespace" /><meta name="Microsoft.Help.F1" content="Grpc.Auth" /><meta name="Microsoft.Help.Id" content="N:Grpc.Auth" /><meta name="Description" content="Provides OAuth2 based authentication for gRPC. Grpc.Auth currently consists of a set of very lightweight wrappers and uses C# Google.Apis.Auth library." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Auth" /><meta name="file" content="N_Grpc_Auth" /><meta name="guid" content="N_Grpc_Auth" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Auth.htm" title="Grpc.Auth" tocid="N_Grpc_Auth">Grpc.Auth</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Class" tocid="T_Grpc_Auth_AuthInterceptors">AuthInterceptors Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Grpc.Auth Namespace</td></tr></table><span class="introStyle"></span><div class="summary">Provides OAuth2 based authentication for gRPC. <span class="code">Grpc.Auth</span> currently consists of a set of very lightweight wrappers and uses C# <a href="https://www.nuget.org/packages/Google.Apis.Auth/">Google.Apis.Auth</a> library.</div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Classes</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Class</th><th>Description</th></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Auth_AuthInterceptors.htm">AuthInterceptors</a></td><td><div class="summary">
+            Factory methods to create authorization interceptors. Interceptors created can be registered with gRPC client classes (autogenerated client stubs that
+            inherit from <a href="T_Grpc_Core_ClientBase.htm">ClientBase</a>).
+            </div></td></tr></table></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/N_Grpc_Core.htm b/doc/ref/csharp/html/html/N_Grpc_Core.htm
new file mode 100644
index 0000000000000000000000000000000000000000..83d06a49513e15145ad8c08ebfe69e5d34b8d2f4
--- /dev/null
+++ b/doc/ref/csharp/html/html/N_Grpc_Core.htm
@@ -0,0 +1,133 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Grpc.Core Namespace</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Grpc.Core namespace" /><meta name="Microsoft.Help.F1" content="Grpc.Core" /><meta name="Microsoft.Help.Id" content="N:Grpc.Core" /><meta name="Description" content="Main namespace for gRPC C# functionality. Contains concepts representing both client side and server side gRPC logic." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="N_Grpc_Core" /><meta name="guid" content="N_Grpc_Core" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Grpc.Core Namespace</td></tr></table><span class="introStyle"></span><div class="summary">Main namespace for gRPC C# functionality. Contains concepts representing both client side and server side gRPC logic.
+
+</div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Classes</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Class</th><th>Description</th></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LST9697633_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_0?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_1?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Return type for client streaming calls.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LST9697633_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Return type for bidirectional streaming calls.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LST9697633_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST9697633_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Return type for server streaming calls.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LST9697633_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST9697633_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Return type for single request - single response call.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Calls.htm">Calls</a></td><td><div class="summary">
+            Helper methods for generated clients to make RPC calls.
+            Most users will use this class only indirectly and will be 
+            making calls using client object generated from protocol
+            buffer definition files.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Channel.htm">Channel</a></td><td><div class="summary">
+            Represents a gRPC channel. Channels are an abstraction of long-lived connections to remote servers.
+            More client objects can reuse the same channel. Creating a channel is an expensive operation compared to invoking
+            a remote call so in general you should reuse a single channel for as many calls as possible.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption</a></td><td><div class="summary">
+            Channel option specified when creating a channel.
+            Corresponds to grpc_channel_args from grpc/grpc.h.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ChannelOptions.htm">ChannelOptions</a></td><td><div class="summary">
+            Defines names of supported channel options.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ClientBase.htm">ClientBase</a></td><td><div class="summary">
+            Base class for client-side stubs.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions</a></td><td><div class="summary">
+            Options for <a href="T_Grpc_Core_ContextPropagationToken.htm">ContextPropagationToken</a>.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ContextPropagationToken.htm">ContextPropagationToken</a></td><td><div class="summary">
+            Token for propagating context of server side handlers to child calls.
+            In situations when a backend is making calls to another backend,
+            it makes sense to propagate properties like deadline and cancellation 
+            token of the server call to the child call.
+            The gRPC native layer provides some other contexts (like tracing context) that
+            are not accessible to explicitly C# layer, but this token still allows propagating them.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Credentials.htm">Credentials</a></td><td><div class="summary">
+            Client-side credentials. Used for creation of a secure channel.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_GrpcEnvironment.htm">GrpcEnvironment</a></td><td><div class="summary">
+            Encapsulates initialization and shutdown of gRPC library.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair</a></td><td><div class="summary">
+            Key certificate pair (in PEM encoding).
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Marshallers.htm">Marshallers</a></td><td><div class="summary">
+            Utilities for creating marshallers.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Metadata.htm">Metadata</a></td><td><div class="summary">
+            A collection of metadata entries that can be exchanged during a call.
+            gRPC supports these types of metadata:
+            <ul><li><strong>Request headers</strong> - are sent by the client at the beginning of a remote call before any request messages are sent.</li><li><strong>Response headers</strong> - are sent by the server at the beginning of a remote call handler before any response messages are sent.</li><li><strong>Response trailers</strong> - are sent by the server at the end of a remote call along with resulting call status.</li></ul></div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Method_2.htm">Method<span id="LST9697633_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            A description of a remote method.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_RpcException.htm">RpcException</a></td><td><div class="summary">
+            Thrown when remote procedure call fails. Every <span class="code">RpcException</span> is associated with a resulting <a href="P_Grpc_Core_RpcException_Status.htm">Status</a> of the call.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Server.htm">Server</a></td><td><div class="summary">
+            gRPC server. A single server can server arbitrary number of services and can listen on more than one ports.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LST9697633_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</a></td><td><div class="summary">
+            Collection of server ports.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm">Server<span id="LST9697633_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</a></td><td><div class="summary">
+            Collection of service definitions.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext</a></td><td><div class="summary">
+            Context for a server-side call.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials</a></td><td><div class="summary">
+            Server side credentials.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ServerPort.htm">ServerPort</a></td><td><div class="summary">
+            A port exposed by a server.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition</a></td><td><div class="summary">
+            Mapping of method names to server call handlers.
+            Normally, the <span class="code">ServerServiceDefinition</span> objects will be created by the <span class="code">BindService</span> factory method 
+            that is part of the autogenerated code for a protocol buffers service definition.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST9697633_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a></td><td><div class="summary">
+            Builder class for <a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition</a>.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials</a></td><td><div class="summary">
+            Client-side SSL credentials.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials</a></td><td><div class="summary">
+            Server-side SSL credentials.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_VersionInfo.htm">VersionInfo</a></td><td><div class="summary">
+            Provides info about current version of gRPC.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Options for write operations.
+            </div></td></tr></table></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Structures</span></div><div id="ID1RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Structure</th><th>Description</th></tr><tr data="structure; public"><td><img src="../icons/pubstructure.gif" alt="Public structure" title="Public structure" /></td><td><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST9697633_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_13?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_14?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Details about a client-side call to be invoked.
+            </div></td></tr><tr data="structure; public"><td><img src="../icons/pubstructure.gif" alt="Public structure" title="Public structure" /></td><td><a href="T_Grpc_Core_CallOptions.htm">CallOptions</a></td><td><div class="summary">
+            Options for calls made by client.
+            </div></td></tr><tr data="structure; public"><td><img src="../icons/pubstructure.gif" alt="Public structure" title="Public structure" /></td><td><a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LST9697633_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_15?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9697633_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_16?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Encapsulates the logic for serializing and deserializing messages.
+            </div></td></tr><tr data="structure; public"><td><img src="../icons/pubstructure.gif" alt="Public structure" title="Public structure" /></td><td><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST9697633_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_17?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a></td><td><div class="summary">
+            Metadata entry
+            </div></td></tr><tr data="structure; public"><td><img src="../icons/pubstructure.gif" alt="Public structure" title="Public structure" /></td><td><a href="T_Grpc_Core_Status.htm">Status</a></td><td><div class="summary">
+            Represents RPC result, which consists of <a href="P_Grpc_Core_Status_StatusCode.htm">StatusCode</a> and an optional detail string. 
+            </div></td></tr></table></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Interfaces</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Interface</th><th>Description</th></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader<span id="LST9697633_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_18?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9697633_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_19?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            A stream of messages to be read.
+            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST9697633_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_20?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9697633_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_21?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            A writable stream of messages.
+            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter<span id="LST9697633_22"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_22?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9697633_23"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_23?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Client-side writable stream of messages with Close capability.
+            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_Grpc_Core_IHasWriteOptions.htm">IHasWriteOptions</a></td><td><div class="summary">
+            Allows sharing write options between ServerCallContext and other objects.
+            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_Grpc_Core_IMethod.htm">IMethod</a></td><td><div class="summary">
+            A non-generic representation of a remote method.
+            </div></td></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_Grpc_Core_IServerStreamWriter_1.htm">IServerStreamWriter<span id="LST9697633_24"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_24?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST9697633_25"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_25?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            A writable stream of messages that is used in server-side handlers.
+            </div></td></tr></table></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Delegates</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Delegate</th><th>Description</th></tr><tr data="delegate; public"><td><img src="../icons/pubdelegate.gif" alt="Public delegate" title="Public delegate" /></td><td><a href="T_Grpc_Core_ClientStreamingServerMethod_2.htm">ClientStreamingServerMethod<span id="LST9697633_26"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_26?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_27"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_27?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Server-side handler for client streaming call.
+            </div></td></tr><tr data="delegate; public"><td><img src="../icons/pubdelegate.gif" alt="Public delegate" title="Public delegate" /></td><td><a href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm">DuplexStreamingServerMethod<span id="LST9697633_28"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_28?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_29"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_29?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Server-side handler for bidi streaming call.
+            </div></td></tr><tr data="delegate; public"><td><img src="../icons/pubdelegate.gif" alt="Public delegate" title="Public delegate" /></td><td><a href="T_Grpc_Core_HeaderInterceptor.htm">HeaderInterceptor</a></td><td><div class="summary">
+            Interceptor for call headers.
+            </div></td></tr><tr data="delegate; public"><td><img src="../icons/pubdelegate.gif" alt="Public delegate" title="Public delegate" /></td><td><a href="T_Grpc_Core_ServerStreamingServerMethod_2.htm">ServerStreamingServerMethod<span id="LST9697633_30"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_30?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_31"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_31?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Server-side handler for server streaming call.
+            </div></td></tr><tr data="delegate; public"><td><img src="../icons/pubdelegate.gif" alt="Public delegate" title="Public delegate" /></td><td><a href="T_Grpc_Core_UnaryServerMethod_2.htm">UnaryServerMethod<span id="LST9697633_32"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_32?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9697633_33"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_33?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Server-side handler for unary call.
+            </div></td></tr></table></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Enumerations</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Enumeration</th><th>Description</th></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_Grpc_Core_ChannelOption_OptionType.htm">ChannelOption<span id="LST9697633_34"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9697633_34?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>OptionType</a></td><td><div class="summary">
+            Type of <span class="code">ChannelOption</span>.
+            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_Grpc_Core_ChannelState.htm">ChannelState</a></td><td><div class="summary">
+            Connectivity state of a channel.
+            Based on grpc_connectivity_state from grpc/grpc.h
+            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_Grpc_Core_CompressionLevel.htm">CompressionLevel</a></td><td><div class="summary">
+            Compression level based on grpc_compression_level from grpc/compression.h
+            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_Grpc_Core_MethodType.htm">MethodType</a></td><td><div class="summary">
+            Method types supported by gRPC.
+            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_Grpc_Core_StatusCode.htm">StatusCode</a></td><td><div class="summary">
+            Result of a remote procedure call.
+            Based on grpc_status_code from grpc/status.h
+            </div></td></tr><tr data="enumeration; public"><td><img src="../icons/pubenumeration.gif" alt="Public enumeration" title="Public enumeration" /></td><td><a href="T_Grpc_Core_WriteFlags.htm">WriteFlags</a></td><td><div class="summary">
+            Flags for write operations.
+            </div></td></tr></table></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><span class="nolink">[Grpc.Core.Channel]</span></div><div class="seeAlsoStyle"><span class="nolink">[Grpc.Core.Server]</span></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/N_Grpc_Core_Logging.htm b/doc/ref/csharp/html/html/N_Grpc_Core_Logging.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e0f8f6fae6691c90f04ab2b8ab3e1150e633ef17
--- /dev/null
+++ b/doc/ref/csharp/html/html/N_Grpc_Core_Logging.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Grpc.Core.Logging Namespace</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Grpc.Core.Logging namespace" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging" /><meta name="Microsoft.Help.Id" content="N:Grpc.Core.Logging" /><meta name="Description" content="Provides functionality to redirect gRPC logs to application-specified destination." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="N_Grpc_Core_Logging" /><meta name="guid" content="N_Grpc_Core_Logging" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Grpc.Core.Logging Namespace</td></tr></table><span class="introStyle"></span><div class="summary">Provides functionality to redirect gRPC logs to application-specified destination.</div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Classes</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Class</th><th>Description</th></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger</a></td><td><div class="summary">Logger that logs to System.Console.</div></td></tr></table></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Interfaces</span></div><div id="ID1RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Interface</th><th>Description</th></tr><tr data="interface; public"><td><img src="../icons/pubinterface.gif" alt="Public interface" title="Public interface" /></td><td><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger</a></td><td><div class="summary">For logging messages.</div></td></tr></table></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/N_Grpc_Core_Utils.htm b/doc/ref/csharp/html/html/N_Grpc_Core_Utils.htm
new file mode 100644
index 0000000000000000000000000000000000000000..07574fcfa8abc57c21875ba4631e51adcce44b2d
--- /dev/null
+++ b/doc/ref/csharp/html/html/N_Grpc_Core_Utils.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Grpc.Core.Utils Namespace</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Grpc.Core.Utils namespace" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils" /><meta name="Microsoft.Help.Id" content="N:Grpc.Core.Utils" /><meta name="Description" content="Various utilities for gRPC C#." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="N_Grpc_Core_Utils" /><meta name="guid" content="N_Grpc_Core_Utils" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_BenchmarkUtil.htm" title="BenchmarkUtil Class" tocid="T_Grpc_Core_Utils_BenchmarkUtil">BenchmarkUtil Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Grpc.Core.Utils Namespace</td></tr></table><span class="introStyle"></span><div class="summary">Various utilities for gRPC C#.</div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Classes</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="typeList" class="members"><tr><th class="iconColumn">
+					 
+				</th><th>Class</th><th>Description</th></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a></td><td><div class="summary">
+            Extension methods that simplify work with gRPC streaming calls.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Utils_BenchmarkUtil.htm">BenchmarkUtil</a></td><td><div class="summary">
+            Utility methods to run microbenchmarks.
+            </div></td></tr><tr data="class; public"><td><img src="../icons/pubclass.gif" alt="Public class" title="Public class" /></td><td><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions</a></td><td><div class="summary">
+            Utility methods to simplify checking preconditions in the code.
+            </div></td></tr></table></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..bdfed5182c4c7383c23a238b16e15f9bb160964b
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse) Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E structure, constructor" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse) structure, constructor" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.CallInvocationDetails constructor" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).CallInvocationDetails constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.CallInvocationDetails" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.CallInvocationDetails`2.#ctor" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_CallInvocationDetails_2__ctor" /><meta name="guid" content="Overload_Grpc_Core_CallInvocationDetails_2__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor " tocid="Overload_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_1">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)" tocid="M_Grpc_Core_CallInvocationDetails_2__ctor_2">CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LSTA61218D2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA61218D2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Constructor </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2__ctor.htm">CallInvocationDetails<span id="LSTA61218D2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA61218D2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script>(Channel, Method<span id="LSTA61218D2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTA61218D2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, CallOptions)</a></td><td><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTA61218D2_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA61218D2_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> struct.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm">CallInvocationDetails<span id="LSTA61218D2_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA61218D2_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script>(Channel, Method<span id="LSTA61218D2_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_10?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTA61218D2_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, String, CallOptions)</a></td><td><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTA61218D2_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_12?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA61218D2_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_13?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> struct.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm">CallInvocationDetails<span id="LSTA61218D2_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_14?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA61218D2_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_15?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script>(Channel, String, String, Marshaller<span id="LSTA61218D2_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_16?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest<span id="LSTA61218D2_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_17?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Marshaller<span id="LSTA61218D2_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_18?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TResponse<span id="LSTA61218D2_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_19?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, CallOptions)</a></td><td><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTA61218D2_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_20?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA61218D2_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_21?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> struct.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTA61218D2_22"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_22?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA61218D2_23"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA61218D2_23?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_ChannelOption__ctor.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_ChannelOption__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f9d3b537559710dfd57de6f57b204034bea21308
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_ChannelOption__ctor.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelOption class, constructor" /><meta name="System.Keywords" content="ChannelOption.ChannelOption constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.ChannelOption" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.ChannelOption.#ctor" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_ChannelOption__ctor" /><meta name="guid" content="Overload_Grpc_Core_ChannelOption__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor " tocid="Overload_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor (String, Int32)" tocid="M_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor (String, Int32)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ChannelOption__ctor_1.htm" title="ChannelOption Constructor (String, String)" tocid="M_Grpc_Core_ChannelOption__ctor_1">ChannelOption Constructor (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption Constructor </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ChannelOption__ctor.htm">ChannelOption(String, Int32)</a></td><td><div class="summary">
+            Creates a channel option with an integer value.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ChannelOption__ctor_1.htm">ChannelOption(String, String)</a></td><td><div class="summary">
+            Creates a channel option with a string value.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Channel__ctor.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Channel__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ba465a1a9198974864e6fa355c70a9c6acbe97de
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Channel__ctor.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Channel class, constructor" /><meta name="System.Keywords" content="Channel.Channel constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.Channel" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Channel.#ctor" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_Channel__ctor" /><meta name="guid" content="Overload_Grpc_Core_Channel__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Channel__ctor.htm" title="Channel Constructor " tocid="Overload_Grpc_Core_Channel__ctor">Channel Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel__ctor.htm" title="Channel Constructor (String, Credentials, IEnumerable(ChannelOption))" tocid="M_Grpc_Core_Channel__ctor">Channel Constructor (String, Credentials, IEnumerable(ChannelOption))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Channel__ctor_1.htm" title="Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))" tocid="M_Grpc_Core_Channel__ctor_1">Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel Constructor </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel__ctor.htm">Channel(String, Credentials, IEnumerable<span id="LSTF16262A3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF16262A3_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>ChannelOption<span id="LSTF16262A3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF16262A3_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Creates a channel that connects to a specific host.
+            Port will default to 80 for an unsecure channel and to 443 for a secure channel.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel__ctor_1.htm">Channel(String, Int32, Credentials, IEnumerable<span id="LSTF16262A3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF16262A3_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>ChannelOption<span id="LSTF16262A3_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF16262A3_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Creates a channel that connects to a specific host and port.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm
new file mode 100644
index 0000000000000000000000000000000000000000..534abce9e1aa23c3bbe88dfc3420a838cfa2116f
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Error Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Error method" /><meta name="System.Keywords" content="ConsoleLogger.Error method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger.Error" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Logging.ConsoleLogger.Error" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="Overload_Grpc_Core_Logging_ConsoleLogger_Error" /><meta name="guid" content="Overload_Grpc_Core_Logging_ConsoleLogger_Error" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm" title="Error Method (String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Error_1">Error Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Error.htm" title="Error Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Error">Error Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LST2B8A68E7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2B8A68E7_0?cpp=::|nu=.");</script>Error Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm">Error(String, <span id="LST2B8A68E7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2B8A68E7_1?cpp=array&lt;");</script>Object<span id="LST2B8A68E7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2B8A68E7_2?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Error.htm">Error(Exception, String, <span id="LST2B8A68E7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2B8A68E7_3?cpp=array&lt;");</script>Object<span id="LST2B8A68E7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2B8A68E7_4?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Error.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm
new file mode 100644
index 0000000000000000000000000000000000000000..463eff048632e05cbf18c536137e490a7cc67cea
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger.Warning Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Warning method" /><meta name="System.Keywords" content="ConsoleLogger.Warning method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger.Warning" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Logging.ConsoleLogger.Warning" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="Overload_Grpc_Core_Logging_ConsoleLogger_Warning" /><meta name="guid" content="Overload_Grpc_Core_Logging_ConsoleLogger_Warning" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm" title="Warning Method (String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Warning_1">Warning Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger_Warning.htm" title="Warning Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ConsoleLogger_Warning">Warning Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger<span id="LSTC7B3B9A1_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC7B3B9A1_0?cpp=::|nu=.");</script>Warning Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm">Warning(String, <span id="LSTC7B3B9A1_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC7B3B9A1_1?cpp=array&lt;");</script>Object<span id="LSTC7B3B9A1_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC7B3B9A1_2?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Warning.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Warning.htm">Warning(Exception, String, <span id="LSTC7B3B9A1_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC7B3B9A1_3?cpp=array&lt;");</script>Object<span id="LSTC7B3B9A1_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC7B3B9A1_4?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Warning.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ConsoleLogger.htm">ConsoleLogger Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ILogger_Error.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ILogger_Error.htm
new file mode 100644
index 0000000000000000000000000000000000000000..38204e336d78e624a3608bed6eaeee4235d4c3c7
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ILogger_Error.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Error Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Error method" /><meta name="System.Keywords" content="ILogger.Error method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ILogger.Error" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Logging.ILogger.Error" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="Overload_Grpc_Core_Logging_ILogger_Error" /><meta name="guid" content="Overload_Grpc_Core_Logging_ILogger_Error" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method " tocid="Overload_Grpc_Core_Logging_ILogger_Error">Error Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Error_1.htm" title="Error Method (String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Error_1">Error Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Error.htm" title="Error Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Error">Error Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LST85C5CE55_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST85C5CE55_0?cpp=::|nu=.");</script>Error Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Error_1.htm">Error(String, <span id="LST85C5CE55_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST85C5CE55_1?cpp=array&lt;");</script>Object<span id="LST85C5CE55_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST85C5CE55_2?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Error.htm">Error(Exception, String, <span id="LST85C5CE55_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST85C5CE55_3?cpp=array&lt;");</script>Object<span id="LST85C5CE55_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST85C5CE55_4?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Error.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ILogger_Warning.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ILogger_Warning.htm
new file mode 100644
index 0000000000000000000000000000000000000000..bfb1543a0a8e79aa4c6dede7ec1d0db84e9b091c
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Logging_ILogger_Warning.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger.Warning Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Warning method" /><meta name="System.Keywords" content="ILogger.Warning method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ILogger.Warning" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Logging.ILogger.Warning" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="Overload_Grpc_Core_Logging_ILogger_Warning" /><meta name="guid" content="Overload_Grpc_Core_Logging_ILogger_Warning" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method " tocid="Overload_Grpc_Core_Logging_ILogger_Warning">Warning Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Warning_1.htm" title="Warning Method (String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Warning_1">Warning Method (String, Object[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ILogger_Warning.htm" title="Warning Method (Exception, String, Object[])" tocid="M_Grpc_Core_Logging_ILogger_Warning">Warning Method (Exception, String, Object[])</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger<span id="LSTB9831373_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB9831373_0?cpp=::|nu=.");</script>Warning Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Warning_1.htm">Warning(String, <span id="LSTB9831373_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB9831373_1?cpp=array&lt;");</script>Object<span id="LSTB9831373_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB9831373_2?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Warning.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Warning.htm">Warning(Exception, String, <span id="LSTB9831373_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB9831373_3?cpp=array&lt;");</script>Object<span id="LSTB9831373_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB9831373_4?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Warning.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Logging_ILogger.htm">ILogger Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Metadata_Add.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Metadata_Add.htm
new file mode 100644
index 0000000000000000000000000000000000000000..58693f58dde9b9c504f240b8ea5d0780395a26ac
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Metadata_Add.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Add Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Add method" /><meta name="System.Keywords" content="Metadata.Add method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Add" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Metadata.Add" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_Metadata_Add" /><meta name="guid" content="Overload_Grpc_Core_Metadata_Add" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Metadata_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add.htm" title="Add Method (Metadata.Entry)" tocid="M_Grpc_Core_Metadata_Add">Add Method (Metadata.Entry)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_1.htm" title="Add Method (String, Byte[])" tocid="M_Grpc_Core_Metadata_Add_1">Add Method (String, Byte[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Add_2.htm" title="Add Method (String, String)" tocid="M_Grpc_Core_Metadata_Add_2">Add Method (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTDDACDB19_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDDACDB19_0?cpp=::|nu=.");</script>Add Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add.htm">Add(Metadata<span id="LSTDDACDB19_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDDACDB19_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add_1.htm">Add(String, <span id="LSTDDACDB19_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDDACDB19_2?cpp=array&lt;");</script>Byte<span id="LSTDDACDB19_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDDACDB19_3?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add_2.htm">Add(String, String)</a></td><td /></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Metadata_Entry__ctor.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Metadata_Entry__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7355bb6cd1c426fae8b1aecc392b2c6f02d4535e
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Metadata_Entry__ctor.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Entry Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Metadata.Entry structure, constructor" /><meta name="System.Keywords" content="Metadata.Entry.Entry constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.Entry" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Metadata.Entry.#ctor" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_Metadata_Entry__ctor" /><meta name="guid" content="Overload_Grpc_Core_Metadata_Entry__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Entry__ctor.htm" title="Entry Constructor " tocid="Overload_Grpc_Core_Metadata_Entry__ctor">Entry Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry__ctor.htm" title="Metadata.Entry Constructor (String, Byte[])" tocid="M_Grpc_Core_Metadata_Entry__ctor">Metadata.Entry Constructor (String, Byte[])</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata_Entry__ctor_1.htm" title="Metadata.Entry Constructor (String, String)" tocid="M_Grpc_Core_Metadata_Entry__ctor_1">Metadata.Entry Constructor (String, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Entry Constructor </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Entry__ctor.htm">Metadata<span id="LST3A8BC45F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3A8BC45F_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry(String, <span id="LST3A8BC45F_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3A8BC45F_1?cpp=array&lt;");</script>Byte<span id="LST3A8BC45F_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3A8BC45F_2?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST3A8BC45F_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3A8BC45F_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a> struct with a binary value.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Entry__ctor_1.htm">Metadata<span id="LST3A8BC45F_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3A8BC45F_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry(String, String)</a></td><td><div class="summary">
+            Initializes a new instance of the <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST3A8BC45F_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3A8BC45F_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a> struct holding an ASCII value.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST3A8BC45F_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3A8BC45F_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_RpcException__ctor.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_RpcException__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..aa64c87501d3470b9eb4590738e5be630cb09116
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_RpcException__ctor.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RpcException class, constructor" /><meta name="System.Keywords" content="RpcException.RpcException constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.RpcException.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.RpcException.RpcException" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.RpcException.#ctor" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_RpcException__ctor" /><meta name="guid" content="Overload_Grpc_Core_RpcException__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor " tocid="Overload_Grpc_Core_RpcException__ctor">RpcException Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor (Status)" tocid="M_Grpc_Core_RpcException__ctor">RpcException Constructor (Status)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_RpcException__ctor_1.htm" title="RpcException Constructor (Status, String)" tocid="M_Grpc_Core_RpcException__ctor_1">RpcException Constructor (Status, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException Constructor </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_RpcException__ctor.htm">RpcException(Status)</a></td><td><div class="summary">
+            Creates a new <span class="code">RpcException</span> associated with given status.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_RpcException__ctor_1.htm">RpcException(Status, String)</a></td><td><div class="summary">
+            Creates a new <span class="code">RpcException</span> associated with given status and message.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_RpcException.htm">RpcException Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm
new file mode 100644
index 0000000000000000000000000000000000000000..534bdc6001598af404602ddf9d7267502cd6346a
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Builder.AddMethod Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AddMethod method" /><meta name="System.Keywords" content="ServerServiceDefinition.Builder.AddMethod method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition.Builder.AddMethod" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition.Builder.AddMethod``2" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.ServerServiceDefinition.Builder.AddMethod" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod" /><meta name="guid" content="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" title="AddMethod Method " tocid="Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod">AddMethod Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm" title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))" tocid="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3">AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Builder<span id="LST6DB3BCAD_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_0?cpp=::|nu=.");</script>AddMethod Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm">AddMethod<span id="LST6DB3BCAD_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST6DB3BCAD_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ClientStreamingServerMethod<span id="LST6DB3BCAD_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a client streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm">AddMethod<span id="LST6DB3BCAD_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_7?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_8?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST6DB3BCAD_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_9?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_10?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, DuplexStreamingServerMethod<span id="LST6DB3BCAD_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_11?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_12?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a bidirectional streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm">AddMethod<span id="LST6DB3BCAD_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_13?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_14?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST6DB3BCAD_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_15?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_16?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ServerStreamingServerMethod<span id="LST6DB3BCAD_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_17?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_18?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a server streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm">AddMethod<span id="LST6DB3BCAD_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_19?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_20?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST6DB3BCAD_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_21?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_22"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_22?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, UnaryServerMethod<span id="LST6DB3BCAD_23"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_23?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST6DB3BCAD_24"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_24?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a single request - single response method.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerServiceDefinition_Builder.htm">ServerServiceDefinition<span id="LST6DB3BCAD_25"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6DB3BCAD_25?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9e5a944189e4c2340a647e9971775e344bc886bc
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPortCollection.Add Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Add method" /><meta name="System.Keywords" content="Server.ServerPortCollection.Add method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ServerPortCollection.Add" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Server.ServerPortCollection.Add" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_Server_ServerPortCollection_Add" /><meta name="guid" content="Overload_Grpc_Core_Server_ServerPortCollection_Add" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServerPortCollection.htm" title="ServerPortCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServerPortCollection">ServerPortCollection Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method " tocid="Overload_Grpc_Core_Server_ServerPortCollection_Add">Add Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_Add.htm" title="Add Method (ServerPort)" tocid="M_Grpc_Core_Server_ServerPortCollection_Add">Add Method (ServerPort)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server_ServerPortCollection_Add_1.htm" title="Add Method (String, Int32, ServerCredentials)" tocid="M_Grpc_Core_Server_ServerPortCollection_Add_1">Add Method (String, Int32, ServerCredentials)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPortCollection<span id="LSTC57FAF81_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC57FAF81_0?cpp=::|nu=.");</script>Add Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_Add.htm">Add(ServerPort)</a></td><td><div class="summary">
+            Adds a new port on which server should listen.
+            Only call this before Start().
+            <h4 class="subHeading">Return Value</h4>Type: <br />The port on which server will be listening.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_Add_1.htm">Add(String, Int32, ServerCredentials)</a></td><td><div class="summary">
+            Adds a new port on which server should listen.
+            <h4 class="subHeading">Return Value</h4>Type: <br />The port on which server will be listening.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LSTC57FAF81_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC57FAF81_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_SslCredentials__ctor.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_SslCredentials__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..93219ea15284b6f7885130610d6bce0412905235
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_SslCredentials__ctor.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslCredentials class, constructor" /><meta name="System.Keywords" content="SslCredentials.SslCredentials constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslCredentials.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslCredentials.SslCredentials" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.SslCredentials.#ctor" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_SslCredentials__ctor" /><meta name="guid" content="Overload_Grpc_Core_SslCredentials__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="Overload_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="M_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_1.htm" title="SslCredentials Constructor (String)" tocid="M_Grpc_Core_SslCredentials__ctor_1">SslCredentials Constructor (String)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslCredentials__ctor_2.htm" title="SslCredentials Constructor (String, KeyCertificatePair)" tocid="M_Grpc_Core_SslCredentials__ctor_2">SslCredentials Constructor (String, KeyCertificatePair)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials Constructor </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslCredentials__ctor.htm">SslCredentials<span id="LSTC1C606C2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC1C606C2_0?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a></td><td><div class="summary">
+            Creates client-side SSL credentials loaded from
+            disk file pointed to by the GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable.
+            If that fails, gets the roots certificates from a well known place on disk.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslCredentials__ctor_1.htm">SslCredentials(String)</a></td><td><div class="summary">
+            Creates client-side SSL credentials from
+            a string containing PEM encoded root certificates.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslCredentials__ctor_2.htm">SslCredentials(String, KeyCertificatePair)</a></td><td><div class="summary">
+            Creates client-side SSL credentials.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_SslServerCredentials__ctor.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_SslServerCredentials__ctor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f8506d929d0cda2c6d5d3d39dd08a7a4bad21c18
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_SslServerCredentials__ctor.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials Constructor </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslServerCredentials class, constructor" /><meta name="System.Keywords" content="SslServerCredentials.SslServerCredentials constructor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.#ctor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.SslServerCredentials" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.SslServerCredentials.#ctor" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Overload_Grpc_Core_SslServerCredentials__ctor" /><meta name="guid" content="Overload_Grpc_Core_SslServerCredentials__ctor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor " tocid="Overload_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))" tocid="M_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_SslServerCredentials__ctor_1.htm" title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)" tocid="M_Grpc_Core_SslServerCredentials__ctor_1">SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials Constructor </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslServerCredentials__ctor.htm">SslServerCredentials(IEnumerable<span id="LST13CCA219_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CCA219_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>KeyCertificatePair<span id="LST13CCA219_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CCA219_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Creates server-side SSL credentials.
+            This constructor should be use if you do not wish to autheticate client
+            using client root certificates.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslServerCredentials__ctor_1.htm">SslServerCredentials(IEnumerable<span id="LST13CCA219_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CCA219_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>KeyCertificatePair<span id="LST13CCA219_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13CCA219_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, String, Boolean)</a></td><td><div class="summary">
+            Creates server-side SSL credentials.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..af7b9578870bd47a97fde1ac78e1552eed1519a5
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncStreamExtensions.WriteAllAsync Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteAllAsync method" /><meta name="System.Keywords" content="AsyncStreamExtensions.WriteAllAsync method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync``1" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Utils.AsyncStreamExtensions.WriteAllAsync" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync" /><meta name="guid" content="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Methods" tocid="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" title="WriteAllAsync Method " tocid="Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync">WriteAllAsync Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm" title="WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))" tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1">WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm" title="WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)" tocid="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1">WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncStreamExtensions<span id="LST99B1CCC8_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_0?cpp=::|nu=.");</script>WriteAllAsync Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm">WriteAllAsync<span id="LST99B1CCC8_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST99B1CCC8_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(IServerStreamWriter<span id="LST99B1CCC8_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST99B1CCC8_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LST99B1CCC8_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST99B1CCC8_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm">WriteAllAsync<span id="LST99B1CCC8_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_7?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST99B1CCC8_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_8?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(IClientStreamWriter<span id="LST99B1CCC8_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_9?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST99B1CCC8_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_10?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LST99B1CCC8_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_11?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST99B1CCC8_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99B1CCC8_12?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Boolean)</a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            Completes the stream afterwards unless close = false.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4b4a4afdf9f7a7efd6af83ed3fa1fcbe42230c39
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckArgument Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CheckArgument method" /><meta name="System.Keywords" content="Preconditions.CheckArgument method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.Preconditions.CheckArgument" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Utils.Preconditions.CheckArgument" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="Overload_Grpc_Core_Utils_Preconditions_CheckArgument" /><meta name="guid" content="Overload_Grpc_Core_Utils_Preconditions_CheckArgument" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm" title="CheckArgument Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckArgument">CheckArgument Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckArgument.htm" title="CheckArgument Method (Boolean)" tocid="M_Grpc_Core_Utils_Preconditions_CheckArgument">CheckArgument Method (Boolean)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm" title="CheckArgument Method (Boolean, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckArgument_1">CheckArgument Method (Boolean, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LSTBDFD9818_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBDFD9818_0?cpp=::|nu=.");</script>CheckArgument Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckArgument.htm">CheckArgument(Boolean)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm">CheckArgument(Boolean, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> with given message if condition is false.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3d1638474d833a85add12c329173e137196c4ca5
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckNotNull Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CheckNotNull method" /><meta name="System.Keywords" content="Preconditions.CheckNotNull method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.Preconditions.CheckNotNull" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.Preconditions.CheckNotNull``1" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Utils.Preconditions.CheckNotNull" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull" /><meta name="guid" content="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm" title="CheckNotNull Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckNotNull">CheckNotNull Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm" title="CheckNotNull(T) Method (T)" tocid="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1">CheckNotNull(T) Method (T)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm" title="CheckNotNull(T) Method (T, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1">CheckNotNull(T) Method (T, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LST6FDE5657_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6FDE5657_0?cpp=::|nu=.");</script>CheckNotNull Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm">CheckNotNull<span id="LST6FDE5657_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6FDE5657_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST6FDE5657_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6FDE5657_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(T)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm">CheckNotNull<span id="LST6FDE5657_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6FDE5657_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST6FDE5657_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST6FDE5657_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(T, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2e223aabd9ce5933a1b6ece42d36527390c2e862
--- /dev/null
+++ b/doc/ref/csharp/html/html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions.CheckState Method </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CheckState method" /><meta name="System.Keywords" content="Preconditions.CheckState method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.Preconditions.CheckState" /><meta name="Microsoft.Help.Id" content="Overload:Grpc.Core.Utils.Preconditions.CheckState" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="Overload_Grpc_Core_Utils_Preconditions_CheckState" /><meta name="guid" content="Overload_Grpc_Core_Utils_Preconditions_CheckState" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Utils_Preconditions_CheckState.htm" title="CheckState Method " tocid="Overload_Grpc_Core_Utils_Preconditions_CheckState">CheckState Method </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckState.htm" title="CheckState Method (Boolean)" tocid="M_Grpc_Core_Utils_Preconditions_CheckState">CheckState Method (Boolean)</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Utils_Preconditions_CheckState_1.htm" title="CheckState Method (Boolean, String)" tocid="M_Grpc_Core_Utils_Preconditions_CheckState_1">CheckState Method (Boolean, String)</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions<span id="LSTC2A6C8E4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2A6C8E4_0?cpp=::|nu=.");</script>CheckState Method </td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Overload List</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckState.htm">CheckState(Boolean)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckState_1.htm">CheckState(Boolean, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> with given message if condition is false.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Utils_Preconditions.htm">Preconditions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm
new file mode 100644
index 0000000000000000000000000000000000000000..de95638d566fff3081ad583f5f85ac674344b2db
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse).RequestStream Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RequestStream property" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E.RequestStream property" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse).RequestStream property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.RequestStream" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.get_RequestStream" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncClientStreamingCall`2.RequestStream" /><meta name="Description" content="Async stream to send streaming requests." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream" /><meta name="guid" content="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" title="ResponseAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync">ResponseAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LSTA32BC263_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA32BC263_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTA32BC263_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA32BC263_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTA32BC263_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA32BC263_2?cpp=::|nu=.");</script>RequestStream Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Async stream to send streaming requests.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IClientStreamWriter</span>&lt;TRequest&gt; <span class="identifier">RequestStream</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">RequestStream</span> <span class="keyword">As</span> <span class="identifier">IClientStreamWriter</span>(<span class="keyword">Of</span> TRequest)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">IClientStreamWriter</span>&lt;TRequest&gt;^ <span class="identifier">RequestStream</span> {
+	<span class="identifier">IClientStreamWriter</span>&lt;TRequest&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RequestStream</span> : <span class="identifier">IClientStreamWriter</span>&lt;'TRequest&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter</a><span id="LSTA32BC263_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA32BC263_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm"><span class="typeparameter">TRequest</span></a><span id="LSTA32BC263_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA32BC263_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LSTA32BC263_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA32BC263_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTA32BC263_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA32BC263_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..35acc657aaf5cfa58397aac7065d6fd5adbf5ff4
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse).ResponseAsync Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseAsync property" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E.ResponseAsync property" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse).ResponseAsync property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.ResponseAsync" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.get_ResponseAsync" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncClientStreamingCall`2.ResponseAsync" /><meta name="Description" content="Asynchronous call result." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync" /><meta name="guid" content="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" title="ResponseAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync">ResponseAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LST10A751EB_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST10A751EB_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST10A751EB_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST10A751EB_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST10A751EB_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST10A751EB_2?cpp=::|nu=.");</script>ResponseAsync Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Asynchronous call result.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span>&lt;TResponse&gt; <span class="identifier">ResponseAsync</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Task</span>&lt;TResponse&gt;^ <span class="identifier">ResponseAsync</span> {
+	<span class="identifier">Task</span>&lt;TResponse&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseAsync</span> : <span class="identifier">Task</span>&lt;'TResponse&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LST10A751EB_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST10A751EB_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST10A751EB_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST10A751EB_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LST10A751EB_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST10A751EB_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST10A751EB_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST10A751EB_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..78a07362f364600d1490c14cb122c8114fd74f63
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse).ResponseHeadersAsync Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E.ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse).ResponseHeadersAsync property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.ResponseHeadersAsync" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2.get_ResponseHeadersAsync" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncClientStreamingCall`2.ResponseHeadersAsync" /><meta name="Description" content="Asynchronous access to response headers." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync" /><meta name="guid" content="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" title="ResponseAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync">ResponseAsync Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LST5918A883_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5918A883_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST5918A883_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5918A883_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST5918A883_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5918A883_2?cpp=::|nu=.");</script>ResponseHeadersAsync Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Asynchronous access to response headers.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="identifier">ResponseHeadersAsync</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseHeadersAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> <span class="identifier">Metadata</span>)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="identifier">ResponseHeadersAsync</span> {
+	<span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseHeadersAsync</span> : <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LST5918A883_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5918A883_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Metadata.htm">Metadata</a><span id="LST5918A883_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5918A883_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LST5918A883_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5918A883_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST5918A883_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5918A883_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7a79a06a9db738b0de801372a3a615bfb326b19c
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse).RequestStream Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RequestStream property" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E.RequestStream property" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse).RequestStream property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.RequestStream" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.get_RequestStream" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncDuplexStreamingCall`2.RequestStream" /><meta name="Description" content="Async stream to send streaming requests." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream" /><meta name="guid" content="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" title="ResponseStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream">ResponseStream Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LST997F9BF6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST997F9BF6_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST997F9BF6_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST997F9BF6_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST997F9BF6_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST997F9BF6_2?cpp=::|nu=.");</script>RequestStream Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Async stream to send streaming requests.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IClientStreamWriter</span>&lt;TRequest&gt; <span class="identifier">RequestStream</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">RequestStream</span> <span class="keyword">As</span> <span class="identifier">IClientStreamWriter</span>(<span class="keyword">Of</span> TRequest)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">IClientStreamWriter</span>&lt;TRequest&gt;^ <span class="identifier">RequestStream</span> {
+	<span class="identifier">IClientStreamWriter</span>&lt;TRequest&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RequestStream</span> : <span class="identifier">IClientStreamWriter</span>&lt;'TRequest&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter</a><span id="LST997F9BF6_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST997F9BF6_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm"><span class="typeparameter">TRequest</span></a><span id="LST997F9BF6_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST997F9BF6_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LST997F9BF6_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST997F9BF6_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST997F9BF6_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST997F9BF6_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7c331475f060224f392bdb3ea9d706cc703e22d7
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse).ResponseHeadersAsync Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E.ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse).ResponseHeadersAsync property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.ResponseHeadersAsync" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.get_ResponseHeadersAsync" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncDuplexStreamingCall`2.ResponseHeadersAsync" /><meta name="Description" content="Asynchronous access to response headers." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync" /><meta name="guid" content="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" title="ResponseStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream">ResponseStream Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LSTEDB7E5F8_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEDB7E5F8_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTEDB7E5F8_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEDB7E5F8_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTEDB7E5F8_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEDB7E5F8_2?cpp=::|nu=.");</script>ResponseHeadersAsync Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Asynchronous access to response headers.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="identifier">ResponseHeadersAsync</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseHeadersAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> <span class="identifier">Metadata</span>)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="identifier">ResponseHeadersAsync</span> {
+	<span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseHeadersAsync</span> : <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LSTEDB7E5F8_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEDB7E5F8_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Metadata.htm">Metadata</a><span id="LSTEDB7E5F8_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEDB7E5F8_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LSTEDB7E5F8_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEDB7E5F8_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTEDB7E5F8_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEDB7E5F8_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c5b298e025e69beab84c46f518fe258e39a36752
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse).ResponseStream Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseStream property" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E.ResponseStream property" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse).ResponseStream property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.ResponseStream" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2.get_ResponseStream" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncDuplexStreamingCall`2.ResponseStream" /><meta name="Description" content="Async stream to read streaming responses." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream" /><meta name="guid" content="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" title="ResponseStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream">ResponseStream Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LST178939A2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST178939A2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST178939A2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST178939A2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST178939A2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST178939A2_2?cpp=::|nu=.");</script>ResponseStream Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Async stream to read streaming responses.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IAsyncStreamReader</span>&lt;TResponse&gt; <span class="identifier">ResponseStream</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseStream</span> <span class="keyword">As</span> <span class="identifier">IAsyncStreamReader</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">IAsyncStreamReader</span>&lt;TResponse&gt;^ <span class="identifier">ResponseStream</span> {
+	<span class="identifier">IAsyncStreamReader</span>&lt;TResponse&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseStream</span> : <span class="identifier">IAsyncStreamReader</span>&lt;'TResponse&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader</a><span id="LST178939A2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST178939A2_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST178939A2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST178939A2_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LST178939A2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST178939A2_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST178939A2_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST178939A2_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5b1ab81753be00748f15c39bdd8c1fca7420e4a5
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse).ResponseHeadersAsync Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E.ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse).ResponseHeadersAsync property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1.ResponseHeadersAsync" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1.get_ResponseHeadersAsync" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncServerStreamingCall`1.ResponseHeadersAsync" /><meta name="Description" content="Asynchronous access to response headers." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync" /><meta name="guid" content="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" title="ResponseStream Property " tocid="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream">ResponseStream Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LST16DB19F2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST16DB19F2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST16DB19F2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST16DB19F2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST16DB19F2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST16DB19F2_2?cpp=::|nu=.");</script>ResponseHeadersAsync Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Asynchronous access to response headers.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="identifier">ResponseHeadersAsync</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseHeadersAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> <span class="identifier">Metadata</span>)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="identifier">ResponseHeadersAsync</span> {
+	<span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseHeadersAsync</span> : <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LST16DB19F2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST16DB19F2_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Metadata.htm">Metadata</a><span id="LST16DB19F2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST16DB19F2_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LST16DB19F2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST16DB19F2_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST16DB19F2_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST16DB19F2_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d6124eff0644c92e3f58dd4eb214c1e432e707ae
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse).ResponseStream Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseStream property" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E.ResponseStream property" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse).ResponseStream property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1.ResponseStream" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1.get_ResponseStream" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncServerStreamingCall`1.ResponseStream" /><meta name="Description" content="Async stream to read streaming responses." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream" /><meta name="guid" content="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" title="ResponseStream Property " tocid="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream">ResponseStream Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LSTE0341870_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE0341870_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTE0341870_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE0341870_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTE0341870_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE0341870_2?cpp=::|nu=.");</script>ResponseStream Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Async stream to read streaming responses.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IAsyncStreamReader</span>&lt;TResponse&gt; <span class="identifier">ResponseStream</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseStream</span> <span class="keyword">As</span> <span class="identifier">IAsyncStreamReader</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">IAsyncStreamReader</span>&lt;TResponse&gt;^ <span class="identifier">ResponseStream</span> {
+	<span class="identifier">IAsyncStreamReader</span>&lt;TResponse&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseStream</span> : <span class="identifier">IAsyncStreamReader</span>&lt;'TResponse&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader</a><span id="LSTE0341870_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE0341870_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm"><span class="typeparameter">TResponse</span></a><span id="LSTE0341870_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE0341870_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LSTE0341870_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE0341870_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTE0341870_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE0341870_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cefbf51be272b12ced432e5948d9ed7eb8d830d8
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse).ResponseAsync Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseAsync property" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E.ResponseAsync property" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse).ResponseAsync property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.ResponseAsync" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.get_ResponseAsync" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncUnaryCall`1.ResponseAsync" /><meta name="Description" content="Asynchronous call result." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync" /><meta name="guid" content="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" title="ResponseAsync Property " tocid="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync">ResponseAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LSTDAE65B8A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE65B8A_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTDAE65B8A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE65B8A_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTDAE65B8A_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE65B8A_2?cpp=::|nu=.");</script>ResponseAsync Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Asynchronous call result.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span>&lt;TResponse&gt; <span class="identifier">ResponseAsync</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Task</span>&lt;TResponse&gt;^ <span class="identifier">ResponseAsync</span> {
+	<span class="identifier">Task</span>&lt;TResponse&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseAsync</span> : <span class="identifier">Task</span>&lt;'TResponse&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LSTDAE65B8A_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE65B8A_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_AsyncUnaryCall_1.htm"><span class="typeparameter">TResponse</span></a><span id="LSTDAE65B8A_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE65B8A_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LSTDAE65B8A_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE65B8A_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTDAE65B8A_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDAE65B8A_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9e40fbf3283a1c10e3b37c6538beab796f7995e3
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse).ResponseHeadersAsync Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E.ResponseHeadersAsync property" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse).ResponseHeadersAsync property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.ResponseHeadersAsync" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1.get_ResponseHeadersAsync" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.AsyncUnaryCall`1.ResponseHeadersAsync" /><meta name="Description" content="Asynchronous access to response headers." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync" /><meta name="guid" content="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" title="ResponseAsync Property " tocid="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync">ResponseAsync Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LST2A3E0C80_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A3E0C80_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST2A3E0C80_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A3E0C80_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST2A3E0C80_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A3E0C80_2?cpp=::|nu=.");</script>ResponseHeadersAsync Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Asynchronous access to response headers.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="identifier">ResponseHeadersAsync</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseHeadersAsync</span> <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> <span class="identifier">Metadata</span>)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="identifier">ResponseHeadersAsync</span> {
+	<span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>^&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseHeadersAsync</span> : <span class="identifier">Task</span>&lt;<span class="identifier">Metadata</span>&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LST2A3E0C80_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A3E0C80_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Metadata.htm">Metadata</a><span id="LST2A3E0C80_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A3E0C80_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LST2A3E0C80_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A3E0C80_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST2A3E0C80_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2A3E0C80_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ada168e569452a781c3bc61912747a1568532fe0
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse).Channel Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Channel property" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.Channel property" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).Channel property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.Channel" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.get_Channel" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallInvocationDetails`2.Channel" /><meta name="Description" content="Get channel associated with this call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallInvocationDetails_2_Channel" /><meta name="guid" content="P_Grpc_Core_CallInvocationDetails_2_Channel" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Host.htm" title="Host Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Method.htm" title="Method Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Options.htm" title="Options Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Options">Options Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller">ResponseMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST87651AEC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST87651AEC_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST87651AEC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST87651AEC_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST87651AEC_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST87651AEC_2?cpp=::|nu=.");</script>Channel Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Get channel associated with this call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Channel</span> <span class="identifier">Channel</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Channel</span> <span class="keyword">As</span> <span class="identifier">Channel</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Channel</span>^ <span class="identifier">Channel</span> {
+	<span class="identifier">Channel</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Channel</span> : <span class="identifier">Channel</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Channel.htm">Channel</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST87651AEC_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST87651AEC_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST87651AEC_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST87651AEC_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Host.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Host.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2482b0c997d5977c1683beba05f16685d21620c5
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Host.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse).Host Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Host property" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.Host property" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).Host property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.Host" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.get_Host" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallInvocationDetails`2.Host" /><meta name="Description" content="Get name of host." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallInvocationDetails_2_Host" /><meta name="guid" content="P_Grpc_Core_CallInvocationDetails_2_Host" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Channel">Channel Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Host.htm" title="Host Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Method.htm" title="Method Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Options.htm" title="Options Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Options">Options Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller">ResponseMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST4EBEFB2B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4EBEFB2B_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST4EBEFB2B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4EBEFB2B_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST4EBEFB2B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4EBEFB2B_2?cpp=::|nu=.");</script>Host Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Get name of host.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Host</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Host</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Host</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Host</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST4EBEFB2B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4EBEFB2B_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST4EBEFB2B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4EBEFB2B_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Method.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Method.htm
new file mode 100644
index 0000000000000000000000000000000000000000..26913ed3738e3f8f2b444273392c2d0cccb20aed
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Method.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse).Method Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Method property" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.Method property" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).Method property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.Method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.get_Method" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallInvocationDetails`2.Method" /><meta name="Description" content="Gets name of method to be called." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallInvocationDetails_2_Method" /><meta name="guid" content="P_Grpc_Core_CallInvocationDetails_2_Method" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Host.htm" title="Host Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Host">Host Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Method.htm" title="Method Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Options.htm" title="Options Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Options">Options Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller">ResponseMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LSTC988C3E4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC988C3E4_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTC988C3E4_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC988C3E4_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTC988C3E4_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC988C3E4_2?cpp=::|nu=.");</script>Method Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets name of method to be called.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Method</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Method</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Method</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Method</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTC988C3E4_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC988C3E4_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC988C3E4_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC988C3E4_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Options.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Options.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ddcf02baa4ab7ec3db5409dfb5eb185dc8b86550
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_Options.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse).Options Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Options property" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.Options property" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).Options property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.Options" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.get_Options" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallInvocationDetails`2.Options" /><meta name="Description" content="Gets the call options." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallInvocationDetails_2_Options" /><meta name="guid" content="P_Grpc_Core_CallInvocationDetails_2_Options" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Host.htm" title="Host Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Method.htm" title="Method Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Method">Method Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Options.htm" title="Options Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Options">Options Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller">ResponseMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST1DD0B003_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1DD0B003_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST1DD0B003_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1DD0B003_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST1DD0B003_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1DD0B003_2?cpp=::|nu=.");</script>Options Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the call options.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CallOptions</span> <span class="identifier">Options</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Options</span> <span class="keyword">As</span> <span class="identifier">CallOptions</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">CallOptions</span> <span class="identifier">Options</span> {
+	<span class="identifier">CallOptions</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Options</span> : <span class="identifier">CallOptions</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST1DD0B003_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1DD0B003_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST1DD0B003_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1DD0B003_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ecd5500821835598289564684869e75d1e73803c
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse).RequestMarshaller Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RequestMarshaller property" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.RequestMarshaller property" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).RequestMarshaller property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.RequestMarshaller" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.get_RequestMarshaller" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallInvocationDetails`2.RequestMarshaller" /><meta name="Description" content="Gets marshaller used to serialize requests." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller" /><meta name="guid" content="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Host.htm" title="Host Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Method.htm" title="Method Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Options.htm" title="Options Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Options">Options Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller">ResponseMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST58489E69_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST58489E69_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST58489E69_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST58489E69_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST58489E69_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST58489E69_2?cpp=::|nu=.");</script>RequestMarshaller Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets marshaller used to serialize requests.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="identifier">RequestMarshaller</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">RequestMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TRequest)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="identifier">RequestMarshaller</span> {
+	<span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RequestMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TRequest&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller</a><span id="LST58489E69_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST58489E69_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TRequest</span></a><span id="LST58489E69_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST58489E69_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST58489E69_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST58489E69_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST58489E69_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST58489E69_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6b74eb825d3b048274af7d5dd1ddf850532b3801
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse).ResponseMarshaller Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseMarshaller property" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E.ResponseMarshaller property" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse).ResponseMarshaller property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.ResponseMarshaller" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2.get_ResponseMarshaller" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallInvocationDetails`2.ResponseMarshaller" /><meta name="Description" content="Gets marshaller used to deserialized responses." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller" /><meta name="guid" content="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Host.htm" title="Host Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Method.htm" title="Method Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Options.htm" title="Options Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Options">Options Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller">ResponseMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LST9DBBB8FB_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DBBB8FB_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST9DBBB8FB_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DBBB8FB_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST9DBBB8FB_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DBBB8FB_2?cpp=::|nu=.");</script>ResponseMarshaller Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets marshaller used to deserialized responses.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="identifier">ResponseMarshaller</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="identifier">ResponseMarshaller</span> {
+	<span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TResponse&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller</a><span id="LST9DBBB8FB_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DBBB8FB_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_CallInvocationDetails_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST9DBBB8FB_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DBBB8FB_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LST9DBBB8FB_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DBBB8FB_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9DBBB8FB_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9DBBB8FB_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_CancellationToken.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_CancellationToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6aa8d3d3f6a0348631826096a701c50bd13d8871
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_CancellationToken.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.CancellationToken Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CancellationToken property" /><meta name="System.Keywords" content="CallOptions.CancellationToken property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.CancellationToken" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.get_CancellationToken" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallOptions.CancellationToken" /><meta name="Description" content="Token that can be used for cancelling the call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallOptions_CancellationToken" /><meta name="guid" content="P_Grpc_Core_CallOptions_CancellationToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_CallOptions_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_CallOptions_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Headers.htm" title="Headers Property " tocid="P_Grpc_Core_CallOptions_Headers">Headers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_PropagationToken.htm" title="PropagationToken Property " tocid="P_Grpc_Core_CallOptions_PropagationToken">PropagationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_CallOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LST47F9ABE3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST47F9ABE3_0?cpp=::|nu=.");</script>CancellationToken Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Token that can be used for cancelling the call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CancellationToken</span> <span class="identifier">CancellationToken</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">CancellationToken</span> <span class="keyword">As</span> <span class="identifier">CancellationToken</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">CancellationToken</span> <span class="identifier">CancellationToken</span> {
+	<span class="identifier">CancellationToken</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">CancellationToken</span> : <span class="identifier">CancellationToken</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd384802" target="_blank">CancellationToken</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_Deadline.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_Deadline.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5581337213019b126e61430a93d2ef2c86c8198b
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_Deadline.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.Deadline Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Deadline property" /><meta name="System.Keywords" content="CallOptions.Deadline property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.Deadline" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.get_Deadline" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallOptions.Deadline" /><meta name="Description" content="Call deadline." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallOptions_Deadline" /><meta name="guid" content="P_Grpc_Core_CallOptions_Deadline" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_CallOptions_CancellationToken">CancellationToken Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_CallOptions_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Headers.htm" title="Headers Property " tocid="P_Grpc_Core_CallOptions_Headers">Headers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_PropagationToken.htm" title="PropagationToken Property " tocid="P_Grpc_Core_CallOptions_PropagationToken">PropagationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_CallOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LSTC2776B71_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2776B71_0?cpp=::|nu=.");</script>Deadline Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Call deadline.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="identifier">Deadline</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Deadline</span> <span class="keyword">As</span> <span class="identifier">Nullable</span>(<span class="keyword">Of</span> <span class="identifier">DateTime</span>)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="identifier">Deadline</span> {
+	<span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Deadline</span> : <span class="identifier">Nullable</span>&lt;<span class="identifier">DateTime</span>&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/b3h38hb0" target="_blank">Nullable</a><span id="LSTC2776B71_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2776B71_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="http://msdn2.microsoft.com/en-us/library/03ybds8y" target="_blank">DateTime</a><span id="LSTC2776B71_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2776B71_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_Headers.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_Headers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3637bd445fa02645c3f6b8b392a495d0340203d4
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_Headers.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.Headers Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Headers property" /><meta name="System.Keywords" content="CallOptions.Headers property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.Headers" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.get_Headers" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallOptions.Headers" /><meta name="Description" content="Headers to send at the beginning of the call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallOptions_Headers" /><meta name="guid" content="P_Grpc_Core_CallOptions_Headers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_CallOptions_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_CallOptions_Deadline">Deadline Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Headers.htm" title="Headers Property " tocid="P_Grpc_Core_CallOptions_Headers">Headers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_PropagationToken.htm" title="PropagationToken Property " tocid="P_Grpc_Core_CallOptions_PropagationToken">PropagationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_CallOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LSTD5D1C29F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5D1C29F_0?cpp=::|nu=.");</script>Headers Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Headers to send at the beginning of the call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span> <span class="identifier">Headers</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Headers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Metadata</span>^ <span class="identifier">Headers</span> {
+	<span class="identifier">Metadata</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Headers</span> : <span class="identifier">Metadata</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_PropagationToken.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_PropagationToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6f3c6ab081adc2baae2e229d4c67db056f1d259a
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_PropagationToken.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.PropagationToken Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="PropagationToken property" /><meta name="System.Keywords" content="CallOptions.PropagationToken property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.PropagationToken" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.get_PropagationToken" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallOptions.PropagationToken" /><meta name="Description" content="Token for propagating parent call context." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallOptions_PropagationToken" /><meta name="guid" content="P_Grpc_Core_CallOptions_PropagationToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_CallOptions_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_CallOptions_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Headers.htm" title="Headers Property " tocid="P_Grpc_Core_CallOptions_Headers">Headers Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_PropagationToken.htm" title="PropagationToken Property " tocid="P_Grpc_Core_CallOptions_PropagationToken">PropagationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_CallOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LST53ACD4AE_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST53ACD4AE_0?cpp=::|nu=.");</script>PropagationToken Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Token for propagating parent call context.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ContextPropagationToken</span> <span class="identifier">PropagationToken</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">PropagationToken</span> <span class="keyword">As</span> <span class="identifier">ContextPropagationToken</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">ContextPropagationToken</span>^ <span class="identifier">PropagationToken</span> {
+	<span class="identifier">ContextPropagationToken</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">PropagationToken</span> : <span class="identifier">ContextPropagationToken</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_ContextPropagationToken.htm">ContextPropagationToken</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_WriteOptions.htm b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c95e3f6835d82586aa965dee5e20cee55af45eb5
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_CallOptions_WriteOptions.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions.WriteOptions Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions property" /><meta name="System.Keywords" content="CallOptions.WriteOptions property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.WriteOptions" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions.get_WriteOptions" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.CallOptions.WriteOptions" /><meta name="Description" content="Write options that will be used for this call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_CallOptions_WriteOptions" /><meta name="guid" content="P_Grpc_Core_CallOptions_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_CallOptions_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_CallOptions_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Headers.htm" title="Headers Property " tocid="P_Grpc_Core_CallOptions_Headers">Headers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_PropagationToken.htm" title="PropagationToken Property " tocid="P_Grpc_Core_CallOptions_PropagationToken">PropagationToken Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_CallOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions<span id="LSTA9E51D6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA9E51D6_0?cpp=::|nu=.");</script>WriteOptions Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Write options that will be used for this call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">WriteOptions</span> <span class="identifier">WriteOptions</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">WriteOptions</span> <span class="keyword">As</span> <span class="identifier">WriteOptions</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">WriteOptions</span>^ <span class="identifier">WriteOptions</span> {
+	<span class="identifier">WriteOptions</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WriteOptions</span> : <span class="identifier">WriteOptions</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_IntValue.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_IntValue.htm
new file mode 100644
index 0000000000000000000000000000000000000000..dc638c48ee8b9db12f3af726eed1c96d3bb115a0
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_IntValue.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption.IntValue Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IntValue property" /><meta name="System.Keywords" content="ChannelOption.IntValue property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.IntValue" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.get_IntValue" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ChannelOption.IntValue" /><meta name="Description" content="Gets the integer value the ChannelOption." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ChannelOption_IntValue" /><meta name="guid" content="P_Grpc_Core_ChannelOption_IntValue" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Properties" tocid="Properties_T_Grpc_Core_ChannelOption">ChannelOption Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_IntValue.htm" title="IntValue Property " tocid="P_Grpc_Core_ChannelOption_IntValue">IntValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Name.htm" title="Name Property " tocid="P_Grpc_Core_ChannelOption_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_StringValue.htm" title="StringValue Property " tocid="P_Grpc_Core_ChannelOption_StringValue">StringValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Type.htm" title="Type Property " tocid="P_Grpc_Core_ChannelOption_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption<span id="LST18C163F5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18C163F5_0?cpp=::|nu=.");</script>IntValue Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the integer value the <span class="code">ChannelOption</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">IntValue</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">IntValue</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">int</span> <span class="identifier">IntValue</span> {
+	<span class="identifier">int</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">IntValue</span> : <span class="identifier">int</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_Name.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_Name.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2115bbc7c43abc6bf72386289d4b0cf07deddb4b
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_Name.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption.Name Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Name property" /><meta name="System.Keywords" content="ChannelOption.Name property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.Name" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.get_Name" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ChannelOption.Name" /><meta name="Description" content="Gets the name of the ChannelOption." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ChannelOption_Name" /><meta name="guid" content="P_Grpc_Core_ChannelOption_Name" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Properties" tocid="Properties_T_Grpc_Core_ChannelOption">ChannelOption Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_IntValue.htm" title="IntValue Property " tocid="P_Grpc_Core_ChannelOption_IntValue">IntValue Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Name.htm" title="Name Property " tocid="P_Grpc_Core_ChannelOption_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_StringValue.htm" title="StringValue Property " tocid="P_Grpc_Core_ChannelOption_StringValue">StringValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Type.htm" title="Type Property " tocid="P_Grpc_Core_ChannelOption_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption<span id="LSTF14A504E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF14A504E_0?cpp=::|nu=.");</script>Name Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the name of the <span class="code">ChannelOption</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Name</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Name</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Name</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Name</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_StringValue.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_StringValue.htm
new file mode 100644
index 0000000000000000000000000000000000000000..35f2567c0be2c1ccd5a6be22f0122b55bffd766f
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_StringValue.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption.StringValue Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="StringValue property" /><meta name="System.Keywords" content="ChannelOption.StringValue property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.StringValue" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.get_StringValue" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ChannelOption.StringValue" /><meta name="Description" content="Gets the string value the ChannelOption." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ChannelOption_StringValue" /><meta name="guid" content="P_Grpc_Core_ChannelOption_StringValue" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Properties" tocid="Properties_T_Grpc_Core_ChannelOption">ChannelOption Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_IntValue.htm" title="IntValue Property " tocid="P_Grpc_Core_ChannelOption_IntValue">IntValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Name.htm" title="Name Property " tocid="P_Grpc_Core_ChannelOption_Name">Name Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_StringValue.htm" title="StringValue Property " tocid="P_Grpc_Core_ChannelOption_StringValue">StringValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Type.htm" title="Type Property " tocid="P_Grpc_Core_ChannelOption_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption<span id="LST7D3B1D1F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7D3B1D1F_0?cpp=::|nu=.");</script>StringValue Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the string value the <span class="code">ChannelOption</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">StringValue</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">StringValue</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">StringValue</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">StringValue</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_Type.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_Type.htm
new file mode 100644
index 0000000000000000000000000000000000000000..150b85c8178912a74ff04a165276ecc56052543f
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ChannelOption_Type.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption.Type Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Type property" /><meta name="System.Keywords" content="ChannelOption.Type property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.Type" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.get_Type" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ChannelOption.Type" /><meta name="Description" content="Gets the type of the ChannelOption." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ChannelOption_Type" /><meta name="guid" content="P_Grpc_Core_ChannelOption_Type" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Properties" tocid="Properties_T_Grpc_Core_ChannelOption">ChannelOption Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_IntValue.htm" title="IntValue Property " tocid="P_Grpc_Core_ChannelOption_IntValue">IntValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Name.htm" title="Name Property " tocid="P_Grpc_Core_ChannelOption_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_StringValue.htm" title="StringValue Property " tocid="P_Grpc_Core_ChannelOption_StringValue">StringValue Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Type.htm" title="Type Property " tocid="P_Grpc_Core_ChannelOption_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption<span id="LST349A0DB9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST349A0DB9_0?cpp=::|nu=.");</script>Type Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the type of the <span class="code">ChannelOption</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ChannelOption<span id="LST349A0DB9_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST349A0DB9_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>OptionType</span> <span class="identifier">Type</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Type</span> <span class="keyword">As</span> <span class="identifier">ChannelOption<span id="LST349A0DB9_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST349A0DB9_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>OptionType</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">ChannelOption<span id="LST349A0DB9_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST349A0DB9_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>OptionType</span> <span class="identifier">Type</span> {
+	<span class="identifier">ChannelOption<span id="LST349A0DB9_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST349A0DB9_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>OptionType</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Type</span> : <span class="identifier">ChannelOption<span id="LST349A0DB9_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST349A0DB9_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>OptionType</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_ChannelOption_OptionType.htm">ChannelOption<span id="LST349A0DB9_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST349A0DB9_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>OptionType</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Channel_ResolvedTarget.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Channel_ResolvedTarget.htm
new file mode 100644
index 0000000000000000000000000000000000000000..daaf5c99f418762f2674040ffafcc31d2cc31dbe
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Channel_ResolvedTarget.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel.ResolvedTarget Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResolvedTarget property" /><meta name="System.Keywords" content="Channel.ResolvedTarget property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.ResolvedTarget" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.get_ResolvedTarget" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Channel.ResolvedTarget" /><meta name="Description" content="Resolved address of the remote endpoint in URI format." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Channel_ResolvedTarget" /><meta name="guid" content="P_Grpc_Core_Channel_ResolvedTarget" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Channel.htm" title="Channel Properties" tocid="Properties_T_Grpc_Core_Channel">Channel Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_ResolvedTarget.htm" title="ResolvedTarget Property " tocid="P_Grpc_Core_Channel_ResolvedTarget">ResolvedTarget Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_State.htm" title="State Property " tocid="P_Grpc_Core_Channel_State">State Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_Target.htm" title="Target Property " tocid="P_Grpc_Core_Channel_Target">Target Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel<span id="LST4A6A67FB_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4A6A67FB_0?cpp=::|nu=.");</script>ResolvedTarget Property </td></tr></table><span class="introStyle"></span><div class="summary">Resolved address of the remote endpoint in URI format.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">ResolvedTarget</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResolvedTarget</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">ResolvedTarget</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResolvedTarget</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Channel_State.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Channel_State.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d4c9af655a2d0774be29781224a0f5a101ce33d5
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Channel_State.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel.State Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="State property" /><meta name="System.Keywords" content="Channel.State property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.State" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.get_State" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Channel.State" /><meta name="Description" content="Gets current connectivity state of this channel." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Channel_State" /><meta name="guid" content="P_Grpc_Core_Channel_State" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Channel.htm" title="Channel Properties" tocid="Properties_T_Grpc_Core_Channel">Channel Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_ResolvedTarget.htm" title="ResolvedTarget Property " tocid="P_Grpc_Core_Channel_ResolvedTarget">ResolvedTarget Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_State.htm" title="State Property " tocid="P_Grpc_Core_Channel_State">State Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_Target.htm" title="Target Property " tocid="P_Grpc_Core_Channel_Target">Target Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel<span id="LST9F9DBD3D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9F9DBD3D_0?cpp=::|nu=.");</script>State Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets current connectivity state of this channel.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ChannelState</span> <span class="identifier">State</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">State</span> <span class="keyword">As</span> <span class="identifier">ChannelState</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">ChannelState</span> <span class="identifier">State</span> {
+	<span class="identifier">ChannelState</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">State</span> : <span class="identifier">ChannelState</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_ChannelState.htm">ChannelState</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Channel_Target.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Channel_Target.htm
new file mode 100644
index 0000000000000000000000000000000000000000..70d27d840f3fda1a7baac677a683320f47522e74
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Channel_Target.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel.Target Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Target property" /><meta name="System.Keywords" content="Channel.Target property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.Target" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel.get_Target" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Channel.Target" /><meta name="Description" content="The original target used to create the channel." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Channel_Target" /><meta name="guid" content="P_Grpc_Core_Channel_Target" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Channel.htm" title="Channel Properties" tocid="Properties_T_Grpc_Core_Channel">Channel Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_ResolvedTarget.htm" title="ResolvedTarget Property " tocid="P_Grpc_Core_Channel_ResolvedTarget">ResolvedTarget Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_State.htm" title="State Property " tocid="P_Grpc_Core_Channel_State">State Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_Target.htm" title="Target Property " tocid="P_Grpc_Core_Channel_Target">Target Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel<span id="LSTB4DD124B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB4DD124B_0?cpp=::|nu=.");</script>Target Property </td></tr></table><span class="introStyle"></span><div class="summary">The original target used to create the channel.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Target</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Target</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Target</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Target</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_Channel.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_Channel.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ed648e8dd3fc8dd5c98aa16079f65e2f91b8aab6
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_Channel.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase.Channel Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Channel property" /><meta name="System.Keywords" content="ClientBase.Channel property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.Channel" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.get_Channel" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ClientBase.Channel" /><meta name="Description" content="Channel associated with this client." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ClientBase_Channel" /><meta name="guid" content="P_Grpc_Core_ClientBase_Channel" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ClientBase.htm" title="ClientBase Properties" tocid="Properties_T_Grpc_Core_ClientBase">ClientBase Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_ClientBase_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_HeaderInterceptor.htm" title="HeaderInterceptor Property " tocid="P_Grpc_Core_ClientBase_HeaderInterceptor">HeaderInterceptor Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Host.htm" title="Host Property " tocid="P_Grpc_Core_ClientBase_Host">Host Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase<span id="LST911BFA6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST911BFA6_0?cpp=::|nu=.");</script>Channel Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Channel associated with this client.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Channel</span> <span class="identifier">Channel</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Channel</span> <span class="keyword">As</span> <span class="identifier">Channel</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Channel</span>^ <span class="identifier">Channel</span> {
+	<span class="identifier">Channel</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Channel</span> : <span class="identifier">Channel</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Channel.htm">Channel</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ClientBase.htm">ClientBase Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3187fe47248c1c4731397e92d98edd3f466e82f8
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase.HeaderInterceptor Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="HeaderInterceptor property" /><meta name="System.Keywords" content="ClientBase.HeaderInterceptor property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.HeaderInterceptor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.get_HeaderInterceptor" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.set_HeaderInterceptor" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ClientBase.HeaderInterceptor" /><meta name="Description" content="Can be used to register a custom header (request metadata) interceptor. The interceptor is invoked each time a new call on this client is started." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ClientBase_HeaderInterceptor" /><meta name="guid" content="P_Grpc_Core_ClientBase_HeaderInterceptor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ClientBase.htm" title="ClientBase Properties" tocid="Properties_T_Grpc_Core_ClientBase">ClientBase Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_ClientBase_Channel">Channel Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_HeaderInterceptor.htm" title="HeaderInterceptor Property " tocid="P_Grpc_Core_ClientBase_HeaderInterceptor">HeaderInterceptor Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Host.htm" title="Host Property " tocid="P_Grpc_Core_ClientBase_Host">Host Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase<span id="LSTD47471C1_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD47471C1_0?cpp=::|nu=.");</script>HeaderInterceptor Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Can be used to register a custom header (request metadata) interceptor.
+            The interceptor is invoked each time a new call on this client is started.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">HeaderInterceptor</span> <span class="identifier">HeaderInterceptor</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Property</span> <span class="identifier">HeaderInterceptor</span> <span class="keyword">As</span> <span class="identifier">HeaderInterceptor</span>
+	<span class="keyword">Get</span>
+	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">HeaderInterceptor</span>^ <span class="identifier">HeaderInterceptor</span> {
+	<span class="identifier">HeaderInterceptor</span>^ <span class="keyword">get</span> ();
+	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">HeaderInterceptor</span>^ <span class="parameter">value</span>);
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">HeaderInterceptor</span> : <span class="identifier">HeaderInterceptor</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_HeaderInterceptor.htm">HeaderInterceptor</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ClientBase.htm">ClientBase Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_Host.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_Host.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f25e313c9620492fd2ad8f2eb82f1a1b484612a9
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ClientBase_Host.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase.Host Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Host property" /><meta name="System.Keywords" content="ClientBase.Host property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.Host" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.get_Host" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase.set_Host" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ClientBase.Host" /><meta name="Description" content="gRPC supports multiple &quot;hosts&quot; being served by a single server. This property can be used to set the target host explicitly. By default, this will be set to null with the meaning &quot;use default host&quot;." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ClientBase_Host" /><meta name="guid" content="P_Grpc_Core_ClientBase_Host" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ClientBase.htm" title="ClientBase Properties" tocid="Properties_T_Grpc_Core_ClientBase">ClientBase Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_ClientBase_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_HeaderInterceptor.htm" title="HeaderInterceptor Property " tocid="P_Grpc_Core_ClientBase_HeaderInterceptor">HeaderInterceptor Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Host.htm" title="Host Property " tocid="P_Grpc_Core_ClientBase_Host">Host Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase<span id="LSTD1D36BA5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD1D36BA5_0?cpp=::|nu=.");</script>Host Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            gRPC supports multiple "hosts" being served by a single server. 
+            This property can be used to set the target host explicitly.
+            By default, this will be set to <span class="code">null</span> with the meaning
+            "use default host".
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Host</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Property</span> <span class="identifier">Host</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span>
+	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Host</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">String</span>^ <span class="parameter">value</span>);
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Host</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ClientBase.htm">ClientBase Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f6e87d64bece37a602fd30eb7d6ee4e08b2abd3b
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions.IsPropagateCancellation Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IsPropagateCancellation property" /><meta name="System.Keywords" content="ContextPropagationOptions.IsPropagateCancellation property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions.IsPropagateCancellation" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions.get_IsPropagateCancellation" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ContextPropagationOptions.IsPropagateCancellation" /><meta name="Description" content="true if parent call's cancellation token should be propagated to the child call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation" /><meta name="guid" content="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Properties" tocid="Properties_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm" title="IsPropagateCancellation Property " tocid="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation">IsPropagateCancellation Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm" title="IsPropagateDeadline Property " tocid="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline">IsPropagateDeadline Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions<span id="LST55448E1E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST55448E1E_0?cpp=::|nu=.");</script>IsPropagateCancellation Property </td></tr></table><span class="introStyle"></span><div class="summary"><span class="code">true</span> if parent call's cancellation token should be propagated to the child call.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">bool</span> <span class="identifier">IsPropagateCancellation</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">IsPropagateCancellation</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">bool</span> <span class="identifier">IsPropagateCancellation</span> {
+	<span class="identifier">bool</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">IsPropagateCancellation</span> : <span class="identifier">bool</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f5c43152c63b43aecf4bd2238dee2eac5683469c
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions.IsPropagateDeadline Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IsPropagateDeadline property" /><meta name="System.Keywords" content="ContextPropagationOptions.IsPropagateDeadline property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions.IsPropagateDeadline" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions.get_IsPropagateDeadline" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ContextPropagationOptions.IsPropagateDeadline" /><meta name="Description" content="true if parent call's deadline should be propagated to the child call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline" /><meta name="guid" content="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Properties" tocid="Properties_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm" title="IsPropagateCancellation Property " tocid="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation">IsPropagateCancellation Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm" title="IsPropagateDeadline Property " tocid="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline">IsPropagateDeadline Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions<span id="LST11E3C78B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST11E3C78B_0?cpp=::|nu=.");</script>IsPropagateDeadline Property </td></tr></table><span class="introStyle"></span><div class="summary"><span class="code">true</span> if parent call's deadline should be propagated to the child call.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">bool</span> <span class="identifier">IsPropagateDeadline</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">IsPropagateDeadline</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">bool</span> <span class="identifier">IsPropagateDeadline</span> {
+	<span class="identifier">bool</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">IsPropagateDeadline</span> : <span class="identifier">bool</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Credentials_Insecure.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Credentials_Insecure.htm
new file mode 100644
index 0000000000000000000000000000000000000000..bab175df2163e7695d2c7667e0d2079d7c4b400e
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Credentials_Insecure.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Credentials.Insecure Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Insecure property" /><meta name="System.Keywords" content="Credentials.Insecure property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Credentials.Insecure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Credentials.get_Insecure" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Credentials.Insecure" /><meta name="Description" content="Returns instance of credential that provides no security and will result in creating an unsecure channel with no encryption whatsoever." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Credentials_Insecure" /><meta name="guid" content="P_Grpc_Core_Credentials_Insecure" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Credentials.htm" title="Credentials Properties" tocid="Properties_T_Grpc_Core_Credentials">Credentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Credentials_Insecure.htm" title="Insecure Property " tocid="P_Grpc_Core_Credentials_Insecure">Insecure Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Credentials<span id="LST1887F985_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1887F985_0?cpp=::|nu=.");</script>Insecure Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns instance of credential that provides no security and 
+            will result in creating an unsecure channel with no encryption whatsoever.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">Credentials</span> <span class="identifier">Insecure</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Insecure</span> <span class="keyword">As</span> <span class="identifier">Credentials</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">property</span> <span class="identifier">Credentials</span>^ <span class="identifier">Insecure</span> {
+	<span class="identifier">Credentials</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">Insecure</span> : <span class="identifier">Credentials</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Credentials.htm">Credentials</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Credentials.htm">Credentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_GrpcEnvironment_Logger.htm b/doc/ref/csharp/html/html/P_Grpc_Core_GrpcEnvironment_Logger.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3e552479501fae1435a04a39ff3d88c114fa25d3
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_GrpcEnvironment_Logger.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GrpcEnvironment.Logger Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Logger property" /><meta name="System.Keywords" content="GrpcEnvironment.Logger property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.GrpcEnvironment.Logger" /><meta name="Microsoft.Help.F1" content="Grpc.Core.GrpcEnvironment.get_Logger" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.GrpcEnvironment.Logger" /><meta name="Description" content="Gets application-wide logger used by gRPC." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_GrpcEnvironment_Logger" /><meta name="guid" content="P_Grpc_Core_GrpcEnvironment_Logger" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Properties" tocid="Properties_T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_GrpcEnvironment_Logger.htm" title="Logger Property " tocid="P_Grpc_Core_GrpcEnvironment_Logger">Logger Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">GrpcEnvironment<span id="LST50445AFC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50445AFC_0?cpp=::|nu=.");</script>Logger Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets application-wide logger used by gRPC.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">ILogger</span> <span class="identifier">Logger</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Logger</span> <span class="keyword">As</span> <span class="identifier">ILogger</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">property</span> <span class="identifier">ILogger</span>^ <span class="identifier">Logger</span> {
+	<span class="identifier">ILogger</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">Logger</span> : <span class="identifier">ILogger</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Logging_ILogger.htm">ILogger</a><br />The logger.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_GrpcEnvironment.htm">GrpcEnvironment Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm b/doc/ref/csharp/html/html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c6b3ebad549ddf89860e918e092f7f4d85779bb2
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamWriter(T).WriteOptions Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions property" /><meta name="System.Keywords" content="IAsyncStreamWriter%3CT%3E.WriteOptions property" /><meta name="System.Keywords" content="IAsyncStreamWriter(Of T).WriteOptions property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IAsyncStreamWriter`1.WriteOptions" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IAsyncStreamWriter`1.get_WriteOptions" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IAsyncStreamWriter`1.set_WriteOptions" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.IAsyncStreamWriter`1.WriteOptions" /><meta name="Description" content="Write options that will be used for the next write. If null, default options will be used. Once set, this property maintains its value across subsequent writes." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions" /><meta name="guid" content="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamWriter<span id="LST2C0CA8C1_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2C0CA8C1_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST2C0CA8C1_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2C0CA8C1_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST2C0CA8C1_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2C0CA8C1_2?cpp=::|nu=.");</script>WriteOptions Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Write options that will be used for the next write.
+            If null, default options will be used.
+            Once set, this property maintains its value across subsequent
+            writes.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">WriteOptions</span> <span class="identifier">WriteOptions</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Property</span> <span class="identifier">WriteOptions</span> <span class="keyword">As</span> <span class="identifier">WriteOptions</span>
+	<span class="keyword">Get</span>
+	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">property</span> <span class="identifier">WriteOptions</span>^ <span class="identifier">WriteOptions</span> {
+	<span class="identifier">WriteOptions</span>^ <span class="keyword">get</span> ();
+	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">WriteOptions</span>^ <span class="parameter">value</span>);
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">WriteOptions</span> : <span class="identifier">WriteOptions</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST2C0CA8C1_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2C0CA8C1_3?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST2C0CA8C1_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2C0CA8C1_4?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm b/doc/ref/csharp/html/html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..6c0d622527fa2355e79047f006af82fba7c9002c
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IHasWriteOptions.WriteOptions Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions property" /><meta name="System.Keywords" content="IHasWriteOptions.WriteOptions property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IHasWriteOptions.WriteOptions" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IHasWriteOptions.get_WriteOptions" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IHasWriteOptions.set_WriteOptions" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.IHasWriteOptions.WriteOptions" /><meta name="Description" content="Gets or sets the write options." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_IHasWriteOptions_WriteOptions" /><meta name="guid" content="P_Grpc_Core_IHasWriteOptions_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Properties" tocid="Properties_T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IHasWriteOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_IHasWriteOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IHasWriteOptions<span id="LSTED26330_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTED26330_0?cpp=::|nu=.");</script>WriteOptions Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets or sets the write options.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">WriteOptions</span> <span class="identifier">WriteOptions</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Property</span> <span class="identifier">WriteOptions</span> <span class="keyword">As</span> <span class="identifier">WriteOptions</span>
+	<span class="keyword">Get</span>
+	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">property</span> <span class="identifier">WriteOptions</span>^ <span class="identifier">WriteOptions</span> {
+	<span class="identifier">WriteOptions</span>^ <span class="keyword">get</span> ();
+	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">WriteOptions</span>^ <span class="parameter">value</span>);
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">WriteOptions</span> : <span class="identifier">WriteOptions</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IHasWriteOptions.htm">IHasWriteOptions Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_FullName.htm b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_FullName.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5c8982962123381440f203debc420d1cbe5c0964
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_FullName.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IMethod.FullName Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="FullName property" /><meta name="System.Keywords" content="IMethod.FullName property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.FullName" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.get_FullName" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.IMethod.FullName" /><meta name="Description" content="Gets the fully qualified name of the method. On the server side, methods are dispatched based on this name." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_IMethod_FullName" /><meta name="guid" content="P_Grpc_Core_IMethod_FullName" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IMethod.htm" title="IMethod Properties" tocid="Properties_T_Grpc_Core_IMethod">IMethod Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_IMethod_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Name.htm" title="Name Property " tocid="P_Grpc_Core_IMethod_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_IMethod_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Type.htm" title="Type Property " tocid="P_Grpc_Core_IMethod_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IMethod<span id="LST743F6173_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST743F6173_0?cpp=::|nu=.");</script>FullName Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the fully qualified name of the method. On the server side, methods are dispatched
+            based on this name.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">string</span> <span class="identifier">FullName</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">FullName</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">FullName</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">FullName</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IMethod.htm">IMethod Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_Name.htm b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_Name.htm
new file mode 100644
index 0000000000000000000000000000000000000000..01fd7db14f757aa4a2f69d69108e51046ffcaee9
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_Name.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IMethod.Name Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Name property" /><meta name="System.Keywords" content="IMethod.Name property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.Name" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.get_Name" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.IMethod.Name" /><meta name="Description" content="Gets the unqualified name of the method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_IMethod_Name" /><meta name="guid" content="P_Grpc_Core_IMethod_Name" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IMethod.htm" title="IMethod Properties" tocid="Properties_T_Grpc_Core_IMethod">IMethod Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_IMethod_FullName">FullName Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Name.htm" title="Name Property " tocid="P_Grpc_Core_IMethod_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_IMethod_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Type.htm" title="Type Property " tocid="P_Grpc_Core_IMethod_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IMethod<span id="LST50501866_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST50501866_0?cpp=::|nu=.");</script>Name Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the unqualified name of the method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">string</span> <span class="identifier">Name</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Name</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Name</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Name</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IMethod.htm">IMethod Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_ServiceName.htm b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_ServiceName.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e94184fcc04a2de2a7b747f6d79b010555a55470
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_ServiceName.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IMethod.ServiceName Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServiceName property" /><meta name="System.Keywords" content="IMethod.ServiceName property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.ServiceName" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.get_ServiceName" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.IMethod.ServiceName" /><meta name="Description" content="Gets the name of the service to which this method belongs." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_IMethod_ServiceName" /><meta name="guid" content="P_Grpc_Core_IMethod_ServiceName" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IMethod.htm" title="IMethod Properties" tocid="Properties_T_Grpc_Core_IMethod">IMethod Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_IMethod_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Name.htm" title="Name Property " tocid="P_Grpc_Core_IMethod_Name">Name Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_IMethod_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Type.htm" title="Type Property " tocid="P_Grpc_Core_IMethod_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IMethod<span id="LSTA412F3B1_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA412F3B1_0?cpp=::|nu=.");</script>ServiceName Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the name of the service to which this method belongs.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">string</span> <span class="identifier">ServiceName</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ServiceName</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">ServiceName</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">ServiceName</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IMethod.htm">IMethod Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_Type.htm b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_Type.htm
new file mode 100644
index 0000000000000000000000000000000000000000..54613fc5e6180ca110d164f18bdef7a4b6723079
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_IMethod_Type.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IMethod.Type Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Type property" /><meta name="System.Keywords" content="IMethod.Type property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.Type" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod.get_Type" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.IMethod.Type" /><meta name="Description" content="Gets the type of the method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_IMethod_Type" /><meta name="guid" content="P_Grpc_Core_IMethod_Type" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IMethod.htm" title="IMethod Properties" tocid="Properties_T_Grpc_Core_IMethod">IMethod Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_IMethod_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Name.htm" title="Name Property " tocid="P_Grpc_Core_IMethod_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_IMethod_ServiceName">ServiceName Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Type.htm" title="Type Property " tocid="P_Grpc_Core_IMethod_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IMethod<span id="LST939FDA4B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST939FDA4B_0?cpp=::|nu=.");</script>Type Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the type of the method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="identifier">MethodType</span> <span class="identifier">Type</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Type</span> <span class="keyword">As</span> <span class="identifier">MethodType</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">property</span> <span class="identifier">MethodType</span> <span class="identifier">Type</span> {
+	<span class="identifier">MethodType</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Type</span> : <span class="identifier">MethodType</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_MethodType.htm">MethodType</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IMethod.htm">IMethod Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm b/doc/ref/csharp/html/html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3eae8efe9a9eea3580fc79aa164246ac4fde6b28
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>KeyCertificatePair.CertificateChain Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CertificateChain property" /><meta name="System.Keywords" content="KeyCertificatePair.CertificateChain property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.KeyCertificatePair.CertificateChain" /><meta name="Microsoft.Help.F1" content="Grpc.Core.KeyCertificatePair.get_CertificateChain" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.KeyCertificatePair.CertificateChain" /><meta name="Description" content="PEM encoded certificate chain." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_KeyCertificatePair_CertificateChain" /><meta name="guid" content="P_Grpc_Core_KeyCertificatePair_CertificateChain" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Properties" tocid="Properties_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_KeyCertificatePair_CertificateChain.htm" title="CertificateChain Property " tocid="P_Grpc_Core_KeyCertificatePair_CertificateChain">CertificateChain Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_KeyCertificatePair_PrivateKey.htm" title="PrivateKey Property " tocid="P_Grpc_Core_KeyCertificatePair_PrivateKey">PrivateKey Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">KeyCertificatePair<span id="LSTF3788CED_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF3788CED_0?cpp=::|nu=.");</script>CertificateChain Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            PEM encoded certificate chain.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">CertificateChain</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">CertificateChain</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">CertificateChain</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">CertificateChain</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm b/doc/ref/csharp/html/html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm
new file mode 100644
index 0000000000000000000000000000000000000000..70ccc67e8e1a0be06b16ffc3e40d0b49ca5c461e
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>KeyCertificatePair.PrivateKey Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="PrivateKey property" /><meta name="System.Keywords" content="KeyCertificatePair.PrivateKey property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.KeyCertificatePair.PrivateKey" /><meta name="Microsoft.Help.F1" content="Grpc.Core.KeyCertificatePair.get_PrivateKey" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.KeyCertificatePair.PrivateKey" /><meta name="Description" content="PEM encoded private key." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_KeyCertificatePair_PrivateKey" /><meta name="guid" content="P_Grpc_Core_KeyCertificatePair_PrivateKey" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Properties" tocid="Properties_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_KeyCertificatePair_CertificateChain.htm" title="CertificateChain Property " tocid="P_Grpc_Core_KeyCertificatePair_CertificateChain">CertificateChain Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_KeyCertificatePair_PrivateKey.htm" title="PrivateKey Property " tocid="P_Grpc_Core_KeyCertificatePair_PrivateKey">PrivateKey Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">KeyCertificatePair<span id="LSTCE561653_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCE561653_0?cpp=::|nu=.");</script>PrivateKey Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            PEM encoded private key.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">PrivateKey</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">PrivateKey</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">PrivateKey</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">PrivateKey</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Marshaller_1_Deserializer.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Marshaller_1_Deserializer.htm
new file mode 100644
index 0000000000000000000000000000000000000000..281cddc77a41c78340444a13b4cf56d1b970da31
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Marshaller_1_Deserializer.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshaller(T).Deserializer Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Deserializer property" /><meta name="System.Keywords" content="Marshaller%3CT%3E.Deserializer property" /><meta name="System.Keywords" content="Marshaller(Of T).Deserializer property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshaller`1.Deserializer" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshaller`1.get_Deserializer" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Marshaller`1.Deserializer" /><meta name="Description" content="Gets the deserializer function." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Marshaller_1_Deserializer" /><meta name="guid" content="P_Grpc_Core_Marshaller_1_Deserializer" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Properties" tocid="Properties_T_Grpc_Core_Marshaller_1">Marshaller(T) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshaller_1_Deserializer.htm" title="Deserializer Property " tocid="P_Grpc_Core_Marshaller_1_Deserializer">Deserializer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshaller_1_Serializer.htm" title="Serializer Property " tocid="P_Grpc_Core_Marshaller_1_Serializer">Serializer Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshaller<span id="LSTB75761F4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTB75761F4_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTB75761F4_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_2?cpp=::|nu=.");</script>Deserializer Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the deserializer function.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Func</span>&lt;<span class="identifier">byte</span>[], T&gt; <span class="identifier">Deserializer</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Deserializer</span> <span class="keyword">As</span> <span class="identifier">Func</span>(<span class="keyword">Of</span> <span class="identifier">Byte</span>(), T)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Func</span>&lt;<span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^, T&gt;^ <span class="identifier">Deserializer</span> {
+	<span class="identifier">Func</span>&lt;<span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^, T&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Deserializer</span> : <span class="identifier">Func</span>&lt;<span class="identifier">byte</span>[], 'T&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb549151" target="_blank">Func</a><span id="LSTB75761F4_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span id="LSTB75761F4_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">Byte</a><span id="LSTB75761F4_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_5?cpp=&gt;|vb=()|nu=[]");</script>, <a href="T_Grpc_Core_Marshaller_1.htm"><span class="typeparameter">T</span></a><span id="LSTB75761F4_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LSTB75761F4_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_7?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTB75761F4_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB75761F4_8?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Marshaller_1_Serializer.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Marshaller_1_Serializer.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d288c6329c8f1b5f1762d7d98a7a5f4b530a29df
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Marshaller_1_Serializer.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshaller(T).Serializer Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Serializer property" /><meta name="System.Keywords" content="Marshaller%3CT%3E.Serializer property" /><meta name="System.Keywords" content="Marshaller(Of T).Serializer property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshaller`1.Serializer" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshaller`1.get_Serializer" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Marshaller`1.Serializer" /><meta name="Description" content="Gets the serializer function." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Marshaller_1_Serializer" /><meta name="guid" content="P_Grpc_Core_Marshaller_1_Serializer" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Properties" tocid="Properties_T_Grpc_Core_Marshaller_1">Marshaller(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshaller_1_Deserializer.htm" title="Deserializer Property " tocid="P_Grpc_Core_Marshaller_1_Deserializer">Deserializer Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshaller_1_Serializer.htm" title="Serializer Property " tocid="P_Grpc_Core_Marshaller_1_Serializer">Serializer Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshaller<span id="LSTB3003823_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTB3003823_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTB3003823_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_2?cpp=::|nu=.");</script>Serializer Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the serializer function.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Func</span>&lt;T, <span class="identifier">byte</span>[]&gt; <span class="identifier">Serializer</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Serializer</span> <span class="keyword">As</span> <span class="identifier">Func</span>(<span class="keyword">Of</span> T, <span class="identifier">Byte</span>())
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Func</span>&lt;T, <span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^&gt;^ <span class="identifier">Serializer</span> {
+	<span class="identifier">Func</span>&lt;T, <span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Serializer</span> : <span class="identifier">Func</span>&lt;'T, <span class="identifier">byte</span>[]&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/bb549151" target="_blank">Func</a><span id="LSTB3003823_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Marshaller_1.htm"><span class="typeparameter">T</span></a>, <span id="LSTB3003823_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_4?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">Byte</a><span id="LSTB3003823_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_5?cpp=&gt;|vb=()|nu=[]");</script><span id="LSTB3003823_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LSTB3003823_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_7?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTB3003823_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB3003823_8?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Marshallers_StringMarshaller.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Marshallers_StringMarshaller.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0db6f764c0011aa69d011bab63fc54137d345db2
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Marshallers_StringMarshaller.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshallers.StringMarshaller Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="StringMarshaller property" /><meta name="System.Keywords" content="Marshallers.StringMarshaller property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshallers.StringMarshaller" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshallers.get_StringMarshaller" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Marshallers.StringMarshaller" /><meta name="Description" content="Returns a marshaller for string type. This is useful for testing." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Marshallers_StringMarshaller" /><meta name="guid" content="P_Grpc_Core_Marshallers_StringMarshaller" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshallers.htm" title="Marshallers Properties" tocid="Properties_T_Grpc_Core_Marshallers">Marshallers Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshallers_StringMarshaller.htm" title="StringMarshaller Property " tocid="P_Grpc_Core_Marshallers_StringMarshaller">StringMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshallers<span id="LST38F7A5B3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST38F7A5B3_0?cpp=::|nu=.");</script>StringMarshaller Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns a marshaller for <span class="code">string</span> type. This is useful for testing.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">Marshaller</span>&lt;<span class="identifier">string</span>&gt; <span class="identifier">StringMarshaller</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">StringMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> <span class="identifier">String</span>)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">property</span> <span class="identifier">Marshaller</span>&lt;<span class="identifier">String</span>^&gt; <span class="identifier">StringMarshaller</span> {
+	<span class="identifier">Marshaller</span>&lt;<span class="identifier">String</span>^&gt; <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">StringMarshaller</span> : <span class="identifier">Marshaller</span>&lt;<span class="identifier">string</span>&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller</a><span id="LST38F7A5B3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST38F7A5B3_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a><span id="LST38F7A5B3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST38F7A5B3_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshallers.htm">Marshallers Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Count.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Count.htm
new file mode 100644
index 0000000000000000000000000000000000000000..348175b9399390250e22d504cd02ce0c384a9dfc
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Count.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Count Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Count property" /><meta name="System.Keywords" content="Metadata.Count property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Count" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.get_Count" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Metadata.Count" /><meta name="Description" content="summaryP:Grpc.Core.Metadata.Count" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Metadata_Count" /><meta name="guid" content="P_Grpc_Core_Metadata_Count" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata.htm" title="Metadata Properties" tocid="Properties_T_Grpc_Core_Metadata">Metadata Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Count.htm" title="Count Property " tocid="P_Grpc_Core_Metadata_Count">Count Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_IsReadOnly.htm" title="IsReadOnly Property " tocid="P_Grpc_Core_Metadata_IsReadOnly">IsReadOnly Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Item.htm" title="Item Property " tocid="P_Grpc_Core_Metadata_Item">Item Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST2013FE93_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2013FE93_0?cpp=::|nu=.");</script>Count Property </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "P:Grpc.Core.Metadata.Count"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">Count</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Count</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">property</span> <span class="identifier">int</span> <span class="identifier">Count</span> {
+	<span class="identifier">int</span> <span class="keyword">get</span> () <span class="keyword">sealed</span>;
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Count</span> : <span class="identifier">int</span> <span class="keyword">with</span> <span class="keyword">get</span>
+<span class="keyword">override</span> <span class="identifier">Count</span> : <span class="identifier">int</span> <span class="keyword">with</span> <span class="keyword">get</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/5s3kzhec" target="_blank">ICollection<span id="LST2013FE93_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2013FE93_1?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST2013FE93_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2013FE93_2?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LST2013FE93_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2013FE93_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Count</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_IsBinary.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_IsBinary.htm
new file mode 100644
index 0000000000000000000000000000000000000000..efa7628e4360f1344c90c9a12cccd9d0cd16f361
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_IsBinary.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry.IsBinary Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IsBinary property" /><meta name="System.Keywords" content="Metadata.Entry.IsBinary property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.IsBinary" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.get_IsBinary" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Metadata.Entry.IsBinary" /><meta name="Description" content="Returns true if this entry is a binary-value entry." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Metadata_Entry_IsBinary" /><meta name="guid" content="P_Grpc_Core_Metadata_Entry_IsBinary" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata_Entry.htm" title="Entry Properties" tocid="Properties_T_Grpc_Core_Metadata_Entry">Entry Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_IsBinary.htm" title="IsBinary Property " tocid="P_Grpc_Core_Metadata_Entry_IsBinary">IsBinary Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Key.htm" title="Key Property " tocid="P_Grpc_Core_Metadata_Entry_Key">Key Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Value.htm" title="Value Property " tocid="P_Grpc_Core_Metadata_Entry_Value">Value Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_ValueBytes.htm" title="ValueBytes Property " tocid="P_Grpc_Core_Metadata_Entry_ValueBytes">ValueBytes Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST97AF85A3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97AF85A3_0?cpp=::|nu=.");</script>Entry<span id="LST97AF85A3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97AF85A3_1?cpp=::|nu=.");</script>IsBinary Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns <span class="code">true</span> if this entry is a binary-value entry.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">bool</span> <span class="identifier">IsBinary</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">IsBinary</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">bool</span> <span class="identifier">IsBinary</span> {
+	<span class="identifier">bool</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">IsBinary</span> : <span class="identifier">bool</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST97AF85A3_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97AF85A3_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_Key.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_Key.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f72d768eb54df7660e9cf9af603b129b087a7430
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_Key.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry.Key Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Key property" /><meta name="System.Keywords" content="Metadata.Entry.Key property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.Key" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.get_Key" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Metadata.Entry.Key" /><meta name="Description" content="Gets the metadata entry key." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Metadata_Entry_Key" /><meta name="guid" content="P_Grpc_Core_Metadata_Entry_Key" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata_Entry.htm" title="Entry Properties" tocid="Properties_T_Grpc_Core_Metadata_Entry">Entry Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_IsBinary.htm" title="IsBinary Property " tocid="P_Grpc_Core_Metadata_Entry_IsBinary">IsBinary Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Key.htm" title="Key Property " tocid="P_Grpc_Core_Metadata_Entry_Key">Key Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Value.htm" title="Value Property " tocid="P_Grpc_Core_Metadata_Entry_Value">Value Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_ValueBytes.htm" title="ValueBytes Property " tocid="P_Grpc_Core_Metadata_Entry_ValueBytes">ValueBytes Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTEFB11001_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEFB11001_0?cpp=::|nu=.");</script>Entry<span id="LSTEFB11001_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEFB11001_1?cpp=::|nu=.");</script>Key Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the metadata entry key.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Key</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Key</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Key</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Key</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LSTEFB11001_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEFB11001_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_Value.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_Value.htm
new file mode 100644
index 0000000000000000000000000000000000000000..53fc95150313b1bb546eca11a20363ef85da1a89
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_Value.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry.Value Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Value property" /><meta name="System.Keywords" content="Metadata.Entry.Value property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.Value" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.get_Value" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Metadata.Entry.Value" /><meta name="Description" content="Gets the string value of this metadata entry." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Metadata_Entry_Value" /><meta name="guid" content="P_Grpc_Core_Metadata_Entry_Value" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata_Entry.htm" title="Entry Properties" tocid="Properties_T_Grpc_Core_Metadata_Entry">Entry Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_IsBinary.htm" title="IsBinary Property " tocid="P_Grpc_Core_Metadata_Entry_IsBinary">IsBinary Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Key.htm" title="Key Property " tocid="P_Grpc_Core_Metadata_Entry_Key">Key Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Value.htm" title="Value Property " tocid="P_Grpc_Core_Metadata_Entry_Value">Value Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_ValueBytes.htm" title="ValueBytes Property " tocid="P_Grpc_Core_Metadata_Entry_ValueBytes">ValueBytes Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTCEA6FA91_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCEA6FA91_0?cpp=::|nu=.");</script>Entry<span id="LSTCEA6FA91_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCEA6FA91_1?cpp=::|nu=.");</script>Value Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the string value of this metadata entry.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Value</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Value</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Value</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Value</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LSTCEA6FA91_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCEA6FA91_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm
new file mode 100644
index 0000000000000000000000000000000000000000..00b325c1c1160915b4127aefcaac55fd07b64e82
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry.ValueBytes Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ValueBytes property" /><meta name="System.Keywords" content="Metadata.Entry.ValueBytes property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.ValueBytes" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry.get_ValueBytes" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Metadata.Entry.ValueBytes" /><meta name="Description" content="Gets the binary value of this metadata entry." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Metadata_Entry_ValueBytes" /><meta name="guid" content="P_Grpc_Core_Metadata_Entry_ValueBytes" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata_Entry.htm" title="Entry Properties" tocid="Properties_T_Grpc_Core_Metadata_Entry">Entry Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_IsBinary.htm" title="IsBinary Property " tocid="P_Grpc_Core_Metadata_Entry_IsBinary">IsBinary Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Key.htm" title="Key Property " tocid="P_Grpc_Core_Metadata_Entry_Key">Key Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Value.htm" title="Value Property " tocid="P_Grpc_Core_Metadata_Entry_Value">Value Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_ValueBytes.htm" title="ValueBytes Property " tocid="P_Grpc_Core_Metadata_Entry_ValueBytes">ValueBytes Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST390CE018_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST390CE018_0?cpp=::|nu=.");</script>Entry<span id="LST390CE018_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST390CE018_1?cpp=::|nu=.");</script>ValueBytes Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the binary value of this metadata entry.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">byte</span>[] <span class="identifier">ValueBytes</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ValueBytes</span> <span class="keyword">As</span> <span class="identifier">Byte</span>()
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^ <span class="identifier">ValueBytes</span> {
+	<span class="keyword">array</span>&lt;<span class="identifier">unsigned char</span>&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ValueBytes</span> : <span class="identifier">byte</span>[] <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <span id="LST390CE018_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST390CE018_2?cpp=array&lt;");</script><a href="http://msdn2.microsoft.com/en-us/library/yyb1w04y" target="_blank">Byte</a><span id="LST390CE018_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST390CE018_3?cpp=&gt;|vb=()|nu=[]");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST390CE018_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST390CE018_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_IsReadOnly.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_IsReadOnly.htm
new file mode 100644
index 0000000000000000000000000000000000000000..da27809a7e08b417a921f3199915a7bacec166ca
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_IsReadOnly.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.IsReadOnly Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IsReadOnly property" /><meta name="System.Keywords" content="Metadata.IsReadOnly property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.IsReadOnly" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.get_IsReadOnly" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Metadata.IsReadOnly" /><meta name="Description" content="summaryP:Grpc.Core.Metadata.IsReadOnly" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Metadata_IsReadOnly" /><meta name="guid" content="P_Grpc_Core_Metadata_IsReadOnly" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata.htm" title="Metadata Properties" tocid="Properties_T_Grpc_Core_Metadata">Metadata Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Count.htm" title="Count Property " tocid="P_Grpc_Core_Metadata_Count">Count Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_IsReadOnly.htm" title="IsReadOnly Property " tocid="P_Grpc_Core_Metadata_IsReadOnly">IsReadOnly Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Item.htm" title="Item Property " tocid="P_Grpc_Core_Metadata_Item">Item Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LSTA246E180_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA246E180_0?cpp=::|nu=.");</script>IsReadOnly Property </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "P:Grpc.Core.Metadata.IsReadOnly"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">bool</span> <span class="identifier">IsReadOnly</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">IsReadOnly</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">property</span> <span class="identifier">bool</span> <span class="identifier">IsReadOnly</span> {
+	<span class="identifier">bool</span> <span class="keyword">get</span> () <span class="keyword">sealed</span>;
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">IsReadOnly</span> : <span class="identifier">bool</span> <span class="keyword">with</span> <span class="keyword">get</span>
+<span class="keyword">override</span> <span class="identifier">IsReadOnly</span> : <span class="identifier">bool</span> <span class="keyword">with</span> <span class="keyword">get</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/0cfatk9t" target="_blank">ICollection<span id="LSTA246E180_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA246E180_1?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTA246E180_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA246E180_2?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LSTA246E180_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA246E180_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IsReadOnly</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Item.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Item.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4147b7345149a825b44f1215d468ea99da13fa75
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Metadata_Item.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Item Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Item property" /><meta name="System.Keywords" content="Metadata.Item property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Item" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.get_Item" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.set_Item" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Metadata.Item(System.Int32)" /><meta name="Description" content="summaryP:Grpc.Core.Metadata.Item(System.Int32)" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Metadata_Item" /><meta name="guid" content="P_Grpc_Core_Metadata_Item" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata.htm" title="Metadata Properties" tocid="Properties_T_Grpc_Core_Metadata">Metadata Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Count.htm" title="Count Property " tocid="P_Grpc_Core_Metadata_Count">Count Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_IsReadOnly.htm" title="IsReadOnly Property " tocid="P_Grpc_Core_Metadata_IsReadOnly">IsReadOnly Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Item.htm" title="Item Property " tocid="P_Grpc_Core_Metadata_Item">Item Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST298F721D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_0?cpp=::|nu=.");</script>Item Property </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "P:Grpc.Core.Metadata.Item(System.Int32)"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata<span id="LST298F721D_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">this</span>[
+	<span class="identifier">int</span> <span class="parameter">index</span>
+] { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Default</span> <span class="keyword">Property</span> <span class="identifier">Item</span> ( 
+	<span class="parameter">index</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+) <span class="keyword">As</span> <span class="identifier">Metadata<span id="LST298F721D_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>
+	<span class="keyword">Get</span>
+	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">property</span> <span class="identifier">Metadata<span id="LST298F721D_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">default</span>[<span class="identifier">int</span> <span class="parameter">index</span>] {
+	<span class="identifier">Metadata<span id="LST298F721D_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">get</span> (<span class="identifier">int</span> <span class="parameter">index</span>) <span class="keyword">sealed</span>;
+	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">int</span> <span class="parameter">index</span>, <span class="identifier">Metadata<span id="LST298F721D_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="parameter">value</span>) <span class="keyword">sealed</span>;
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Item</span> : <span class="identifier">Metadata<span id="LST298F721D_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
+<span class="keyword">override</span> <span class="identifier">Item</span> : <span class="identifier">Metadata<span id="LST298F721D_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">index</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">System<span id="LST298F721D_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Int32</a><br /></dd></dl><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST298F721D_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a><h4 class="subHeading">Implements</h4><a href="http://msdn2.microsoft.com/en-us/library/ewthkb10" target="_blank">IList<span id="LST298F721D_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_10?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST298F721D_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_11?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script><span id="LST298F721D_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Item<span id="LST298F721D_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_13?cs=[|vb=(|cpp=[|nu=(|fs= ");</script>Int32<span id="LST298F721D_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST298F721D_14?cs=]|vb=)|cpp=]|nu=)|fs= ");</script></a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_FullName.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_FullName.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d3940aeb1267b120b41e9eb12137fd37dbc132c0
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_FullName.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse).FullName Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="FullName property" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E.FullName property" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse).FullName property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.FullName" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.get_FullName" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Method`2.FullName" /><meta name="Description" content="Gets the fully qualified name of the method. On the server side, methods are dispatched based on this name." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Method_2_FullName" /><meta name="guid" content="P_Grpc_Core_Method_2_FullName" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_Method_2_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Name.htm" title="Name Property " tocid="P_Grpc_Core_Method_2_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_Method_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_Method_2_ResponseMarshaller">ResponseMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_Method_2_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Type.htm" title="Type Property " tocid="P_Grpc_Core_Method_2_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LSTF00A04B2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF00A04B2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTF00A04B2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF00A04B2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTF00A04B2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF00A04B2_2?cpp=::|nu=.");</script>FullName Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the fully qualified name of the method. On the server side, methods are dispatched
+            based on this name.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">FullName</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">FullName</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">FullName</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> () <span class="keyword">sealed</span>;
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">FullName</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+<span class="keyword">override</span> <span class="identifier">FullName</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a><h4 class="subHeading">Implements</h4><a href="P_Grpc_Core_IMethod_FullName.htm">IMethod<span id="LSTF00A04B2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF00A04B2_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>FullName</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LSTF00A04B2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF00A04B2_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTF00A04B2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF00A04B2_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_Name.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_Name.htm
new file mode 100644
index 0000000000000000000000000000000000000000..832b9683192d9eb8fa82f068599321de3728ae06
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_Name.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse).Name Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Name property" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E.Name property" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse).Name property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.Name" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.get_Name" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Method`2.Name" /><meta name="Description" content="Gets the unqualified name of the method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Method_2_Name" /><meta name="guid" content="P_Grpc_Core_Method_2_Name" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_Method_2_FullName">FullName Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Name.htm" title="Name Property " tocid="P_Grpc_Core_Method_2_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_Method_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_Method_2_ResponseMarshaller">ResponseMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_Method_2_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Type.htm" title="Type Property " tocid="P_Grpc_Core_Method_2_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LST951FE1A7_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST951FE1A7_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST951FE1A7_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST951FE1A7_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST951FE1A7_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST951FE1A7_2?cpp=::|nu=.");</script>Name Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the unqualified name of the method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Name</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Name</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Name</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> () <span class="keyword">sealed</span>;
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Name</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+<span class="keyword">override</span> <span class="identifier">Name</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a><h4 class="subHeading">Implements</h4><a href="P_Grpc_Core_IMethod_Name.htm">IMethod<span id="LST951FE1A7_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST951FE1A7_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Name</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LST951FE1A7_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST951FE1A7_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST951FE1A7_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST951FE1A7_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_RequestMarshaller.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_RequestMarshaller.htm
new file mode 100644
index 0000000000000000000000000000000000000000..8a4c5b3da0e4798b38db2cae0f66161e2905ff5c
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_RequestMarshaller.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse).RequestMarshaller Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RequestMarshaller property" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E.RequestMarshaller property" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse).RequestMarshaller property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.RequestMarshaller" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.get_RequestMarshaller" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Method`2.RequestMarshaller" /><meta name="Description" content="Gets the marshaller used for request messages." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Method_2_RequestMarshaller" /><meta name="guid" content="P_Grpc_Core_Method_2_RequestMarshaller" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_Method_2_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Name.htm" title="Name Property " tocid="P_Grpc_Core_Method_2_Name">Name Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_Method_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_Method_2_ResponseMarshaller">ResponseMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_Method_2_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Type.htm" title="Type Property " tocid="P_Grpc_Core_Method_2_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LSTD5673AAC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5673AAC_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTD5673AAC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5673AAC_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LSTD5673AAC_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5673AAC_2?cpp=::|nu=.");</script>RequestMarshaller Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the marshaller used for request messages.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="identifier">RequestMarshaller</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">RequestMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TRequest)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="identifier">RequestMarshaller</span> {
+	<span class="identifier">Marshaller</span>&lt;TRequest&gt; <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RequestMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TRequest&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller</a><span id="LSTD5673AAC_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5673AAC_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Method_2.htm"><span class="typeparameter">TRequest</span></a><span id="LSTD5673AAC_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5673AAC_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LSTD5673AAC_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5673AAC_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTD5673AAC_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD5673AAC_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_ResponseMarshaller.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_ResponseMarshaller.htm
new file mode 100644
index 0000000000000000000000000000000000000000..dbe51e6d4d11b84189e219ec55a0bc0ecc759d95
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_ResponseMarshaller.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse).ResponseMarshaller Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseMarshaller property" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E.ResponseMarshaller property" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse).ResponseMarshaller property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.ResponseMarshaller" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.get_ResponseMarshaller" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Method`2.ResponseMarshaller" /><meta name="Description" content="Gets the marshaller used for response messages." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Method_2_ResponseMarshaller" /><meta name="guid" content="P_Grpc_Core_Method_2_ResponseMarshaller" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_Method_2_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Name.htm" title="Name Property " tocid="P_Grpc_Core_Method_2_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_Method_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_Method_2_ResponseMarshaller">ResponseMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_Method_2_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Type.htm" title="Type Property " tocid="P_Grpc_Core_Method_2_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LST761D02DA_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST761D02DA_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST761D02DA_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST761D02DA_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST761D02DA_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST761D02DA_2?cpp=::|nu=.");</script>ResponseMarshaller Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the marshaller used for response messages.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="identifier">ResponseMarshaller</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseMarshaller</span> <span class="keyword">As</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="identifier">ResponseMarshaller</span> {
+	<span class="identifier">Marshaller</span>&lt;TResponse&gt; <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseMarshaller</span> : <span class="identifier">Marshaller</span>&lt;'TResponse&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller</a><span id="LST761D02DA_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST761D02DA_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_Method_2.htm"><span class="typeparameter">TResponse</span></a><span id="LST761D02DA_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST761D02DA_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LST761D02DA_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST761D02DA_5?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST761D02DA_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST761D02DA_6?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_ServiceName.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_ServiceName.htm
new file mode 100644
index 0000000000000000000000000000000000000000..00816a5b6235841de2509b6693b84394b6afd762
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_ServiceName.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse).ServiceName Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServiceName property" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E.ServiceName property" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse).ServiceName property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.ServiceName" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.get_ServiceName" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Method`2.ServiceName" /><meta name="Description" content="Gets the name of the service to which this method belongs." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Method_2_ServiceName" /><meta name="guid" content="P_Grpc_Core_Method_2_ServiceName" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_Method_2_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Name.htm" title="Name Property " tocid="P_Grpc_Core_Method_2_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_Method_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_Method_2_ResponseMarshaller">ResponseMarshaller Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_Method_2_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Type.htm" title="Type Property " tocid="P_Grpc_Core_Method_2_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LST73E5C4FC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST73E5C4FC_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST73E5C4FC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST73E5C4FC_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST73E5C4FC_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST73E5C4FC_2?cpp=::|nu=.");</script>ServiceName Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the name of the service to which this method belongs.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">ServiceName</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ServiceName</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">ServiceName</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> () <span class="keyword">sealed</span>;
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">ServiceName</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+<span class="keyword">override</span> <span class="identifier">ServiceName</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a><h4 class="subHeading">Implements</h4><a href="P_Grpc_Core_IMethod_ServiceName.htm">IMethod<span id="LST73E5C4FC_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST73E5C4FC_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceName</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LST73E5C4FC_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST73E5C4FC_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST73E5C4FC_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST73E5C4FC_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_Type.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_Type.htm
new file mode 100644
index 0000000000000000000000000000000000000000..76c2f26b0d82cc538d7b94515ea06b1084d6de61
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Method_2_Type.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse).Type Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Type property" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E.Type property" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse).Type property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.Type" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2.get_Type" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Method`2.Type" /><meta name="Description" content="Gets the type of the method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Method_2_Type" /><meta name="guid" content="P_Grpc_Core_Method_2_Type" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_Method_2_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Name.htm" title="Name Property " tocid="P_Grpc_Core_Method_2_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_Method_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_Method_2_ResponseMarshaller">ResponseMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_Method_2_ServiceName">ServiceName Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Type.htm" title="Type Property " tocid="P_Grpc_Core_Method_2_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LST1B59ED48_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B59ED48_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST1B59ED48_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B59ED48_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><span id="LST1B59ED48_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B59ED48_2?cpp=::|nu=.");</script>Type Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the type of the method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">MethodType</span> <span class="identifier">Type</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Type</span> <span class="keyword">As</span> <span class="identifier">MethodType</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">virtual</span> <span class="keyword">property</span> <span class="identifier">MethodType</span> <span class="identifier">Type</span> {
+	<span class="identifier">MethodType</span> <span class="keyword">get</span> () <span class="keyword">sealed</span>;
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">abstract</span> <span class="identifier">Type</span> : <span class="identifier">MethodType</span> <span class="keyword">with</span> <span class="keyword">get</span>
+<span class="keyword">override</span> <span class="identifier">Type</span> : <span class="identifier">MethodType</span> <span class="keyword">with</span> <span class="keyword">get</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_MethodType.htm">MethodType</a><h4 class="subHeading">Implements</h4><a href="P_Grpc_Core_IMethod_Type.htm">IMethod<span id="LST1B59ED48_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B59ED48_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Type</a><br /></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LST1B59ED48_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B59ED48_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST1B59ED48_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1B59ED48_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_RpcException_Status.htm b/doc/ref/csharp/html/html/P_Grpc_Core_RpcException_Status.htm
new file mode 100644
index 0000000000000000000000000000000000000000..679d1a940e4a706cbac5e898cbdd2fa444eebcd0
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_RpcException_Status.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException.Status Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Status property" /><meta name="System.Keywords" content="RpcException.Status property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.RpcException.Status" /><meta name="Microsoft.Help.F1" content="Grpc.Core.RpcException.get_Status" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.RpcException.Status" /><meta name="Description" content="Resulting status of the call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_RpcException_Status" /><meta name="guid" content="P_Grpc_Core_RpcException_Status" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_RpcException.htm" title="RpcException Properties" tocid="Properties_T_Grpc_Core_RpcException">RpcException Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_RpcException_Status.htm" title="Status Property " tocid="P_Grpc_Core_RpcException_Status">Status Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException<span id="LSTC5F49DDF_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC5F49DDF_0?cpp=::|nu=.");</script>Status Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Resulting status of the call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Status</span> <span class="identifier">Status</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Status</span> <span class="keyword">As</span> <span class="identifier">Status</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Status</span> <span class="identifier">Status</span> {
+	<span class="identifier">Status</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Status</span> : <span class="identifier">Status</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_RpcException.htm">RpcException Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_CancellationToken.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_CancellationToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..15cfa92efb90a31a6af4a569f276b89f8d104058
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_CancellationToken.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.CancellationToken Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CancellationToken property" /><meta name="System.Keywords" content="ServerCallContext.CancellationToken property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.CancellationToken" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_CancellationToken" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.CancellationToken" /><meta name="Description" content="Cancellation token signals when call is cancelled." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_CancellationToken" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_CancellationToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LSTB10DDC99_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB10DDC99_0?cpp=::|nu=.");</script>CancellationToken Property </td></tr></table><span class="introStyle"></span><div class="summary">Cancellation token signals when call is cancelled.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">CancellationToken</span> <span class="identifier">CancellationToken</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">CancellationToken</span> <span class="keyword">As</span> <span class="identifier">CancellationToken</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">CancellationToken</span> <span class="identifier">CancellationToken</span> {
+	<span class="identifier">CancellationToken</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">CancellationToken</span> : <span class="identifier">CancellationToken</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd384802" target="_blank">CancellationToken</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Deadline.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Deadline.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1c8c57decd5fb1a32b32a35b87fe5a1254659201
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Deadline.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.Deadline Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Deadline property" /><meta name="System.Keywords" content="ServerCallContext.Deadline property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.Deadline" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_Deadline" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.Deadline" /><meta name="Description" content="Deadline for this RPC." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_Deadline" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_Deadline" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LSTD0F7067_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD0F7067_0?cpp=::|nu=.");</script>Deadline Property </td></tr></table><span class="introStyle"></span><div class="summary">Deadline for this RPC.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">DateTime</span> <span class="identifier">Deadline</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Deadline</span> <span class="keyword">As</span> <span class="identifier">DateTime</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">DateTime</span> <span class="identifier">Deadline</span> {
+	<span class="identifier">DateTime</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Deadline</span> : <span class="identifier">DateTime</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/03ybds8y" target="_blank">DateTime</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Host.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Host.htm
new file mode 100644
index 0000000000000000000000000000000000000000..88cf207e61631930d215356d7e3fe653e3b036d6
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Host.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.Host Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Host property" /><meta name="System.Keywords" content="ServerCallContext.Host property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.Host" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_Host" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.Host" /><meta name="Description" content="Name of host called in this RPC." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_Host" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_Host" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LST708CE561_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST708CE561_0?cpp=::|nu=.");</script>Host Property </td></tr></table><span class="introStyle"></span><div class="summary">Name of host called in this RPC.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Host</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Host</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Host</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Host</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Method.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Method.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5c8e643be312192885244061026c16086c5b7fb9
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Method.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.Method Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Method property" /><meta name="System.Keywords" content="ServerCallContext.Method property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.Method" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_Method" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.Method" /><meta name="Description" content="Name of method called in this RPC." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_Method" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_Method" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LST3FB77324_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3FB77324_0?cpp=::|nu=.");</script>Method Property </td></tr></table><span class="introStyle"></span><div class="summary">Name of method called in this RPC.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Method</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Method</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Method</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Method</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Peer.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Peer.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0222fd07f173da5477f7ef34762ee39578effc28
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Peer.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.Peer Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Peer property" /><meta name="System.Keywords" content="ServerCallContext.Peer property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.Peer" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_Peer" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.Peer" /><meta name="Description" content="Address of the remote endpoint in URI format." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_Peer" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_Peer" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LSTA036C407_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA036C407_0?cpp=::|nu=.");</script>Peer Property </td></tr></table><span class="introStyle"></span><div class="summary">Address of the remote endpoint in URI format.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Peer</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Peer</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Peer</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Peer</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e81a00be350e4ebaf06068be6af5c5f47c8a79a9
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.RequestHeaders Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RequestHeaders property" /><meta name="System.Keywords" content="ServerCallContext.RequestHeaders property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.RequestHeaders" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_RequestHeaders" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.RequestHeaders" /><meta name="Description" content="Initial metadata sent by client." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_RequestHeaders" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_RequestHeaders" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LST7FC6D30C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7FC6D30C_0?cpp=::|nu=.");</script>RequestHeaders Property </td></tr></table><span class="introStyle"></span><div class="summary">Initial metadata sent by client.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span> <span class="identifier">RequestHeaders</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">RequestHeaders</span> <span class="keyword">As</span> <span class="identifier">Metadata</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Metadata</span>^ <span class="identifier">RequestHeaders</span> {
+	<span class="identifier">Metadata</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RequestHeaders</span> : <span class="identifier">Metadata</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e80e6395293b2425c5f77fcbb9764deda416cfd4
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.ResponseTrailers Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ResponseTrailers property" /><meta name="System.Keywords" content="ServerCallContext.ResponseTrailers property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.ResponseTrailers" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_ResponseTrailers" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.ResponseTrailers" /><meta name="Description" content="Trailers to send back to client after RPC finishes." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_ResponseTrailers" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_ResponseTrailers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LSTF8DE4F16_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF8DE4F16_0?cpp=::|nu=.");</script>ResponseTrailers Property </td></tr></table><span class="introStyle"></span><div class="summary">Trailers to send back to client after RPC finishes.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Metadata</span> <span class="identifier">ResponseTrailers</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ResponseTrailers</span> <span class="keyword">As</span> <span class="identifier">Metadata</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Metadata</span>^ <span class="identifier">ResponseTrailers</span> {
+	<span class="identifier">Metadata</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ResponseTrailers</span> : <span class="identifier">Metadata</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Metadata.htm">Metadata</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Status.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Status.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fc2ff6fce224c5288f4f992daf3253f9cac379e5
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_Status.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.Status Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Status property" /><meta name="System.Keywords" content="ServerCallContext.Status property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.Status" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_Status" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.set_Status" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.Status" /><meta name="Description" content="Status to send back to client after RPC finishes." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_Status" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_Status" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LSTC3876E65_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC3876E65_0?cpp=::|nu=.");</script>Status Property </td></tr></table><span class="introStyle"></span><div class="summary"> Status to send back to client after RPC finishes.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Status</span> <span class="identifier">Status</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Property</span> <span class="identifier">Status</span> <span class="keyword">As</span> <span class="identifier">Status</span>
+	<span class="keyword">Get</span>
+	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Status</span> <span class="identifier">Status</span> {
+	<span class="identifier">Status</span> <span class="keyword">get</span> ();
+	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">Status</span> <span class="parameter">value</span>);
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Status</span> : <span class="identifier">Status</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Status.htm">Status</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_WriteOptions.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..46365ef1b9a15d9548a282852478d3c24d91d16d
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCallContext_WriteOptions.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext.WriteOptions Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions property" /><meta name="System.Keywords" content="ServerCallContext.WriteOptions property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.WriteOptions" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.get_WriteOptions" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext.set_WriteOptions" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCallContext.WriteOptions" /><meta name="Description" content="Allows setting write options for the following write. For streaming response calls, this property is also exposed as on IServerStreamWriter for convenience. Both properties are backed by the same underlying value." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCallContext_WriteOptions" /><meta name="guid" content="P_Grpc_Core_ServerCallContext_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext<span id="LST7D808072_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7D808072_0?cpp=::|nu=.");</script>WriteOptions Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Allows setting write options for the following write.
+            For streaming response calls, this property is also exposed as on IServerStreamWriter for convenience.
+            Both properties are backed by the same underlying value.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">WriteOptions</span> <span class="identifier">WriteOptions</span> { <span class="keyword">get</span>; <span class="keyword">set</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Property</span> <span class="identifier">WriteOptions</span> <span class="keyword">As</span> <span class="identifier">WriteOptions</span>
+	<span class="keyword">Get</span>
+	<span class="keyword">Set</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">WriteOptions</span>^ <span class="identifier">WriteOptions</span> {
+	<span class="identifier">WriteOptions</span>^ <span class="keyword">get</span> ();
+	<span class="keyword">void</span> <span class="keyword">set</span> (<span class="identifier">WriteOptions</span>^ <span class="parameter">value</span>);
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">WriteOptions</span> : <span class="identifier">WriteOptions</span> <span class="keyword">with</span> <span class="keyword">get</span>, <span class="keyword">set</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerCredentials_Insecure.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCredentials_Insecure.htm
new file mode 100644
index 0000000000000000000000000000000000000000..df7c2a2809ac9bdeb83d87f8424cdff65f753adc
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerCredentials_Insecure.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCredentials.Insecure Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Insecure property" /><meta name="System.Keywords" content="ServerCredentials.Insecure property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCredentials.Insecure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCredentials.get_Insecure" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerCredentials.Insecure" /><meta name="Description" content="Returns instance of credential that provides no security and will result in creating an unsecure server port with no encryption whatsoever." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerCredentials_Insecure" /><meta name="guid" content="P_Grpc_Core_ServerCredentials_Insecure" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Properties" tocid="Properties_T_Grpc_Core_ServerCredentials">ServerCredentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCredentials_Insecure.htm" title="Insecure Property " tocid="P_Grpc_Core_ServerCredentials_Insecure">Insecure Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCredentials<span id="LSTA8F38724_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA8F38724_0?cpp=::|nu=.");</script>Insecure Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Returns instance of credential that provides no security and 
+            will result in creating an unsecure server port with no encryption whatsoever.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="identifier">ServerCredentials</span> <span class="identifier">Insecure</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Shared</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Insecure</span> <span class="keyword">As</span> <span class="identifier">ServerCredentials</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">static</span> <span class="keyword">property</span> <span class="identifier">ServerCredentials</span>^ <span class="identifier">Insecure</span> {
+	<span class="identifier">ServerCredentials</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">static</span> <span class="keyword">member</span> <span class="identifier">Insecure</span> : <span class="identifier">ServerCredentials</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_BoundPort.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_BoundPort.htm
new file mode 100644
index 0000000000000000000000000000000000000000..93075277bf6a4fdc35316f371cf3f0584c327cc2
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_BoundPort.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort.BoundPort Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="BoundPort property" /><meta name="System.Keywords" content="ServerPort.BoundPort property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.BoundPort" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.get_BoundPort" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerPort.BoundPort" /><meta name="Description" content="summaryP:Grpc.Core.ServerPort.BoundPort" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerPort_BoundPort" /><meta name="guid" content="P_Grpc_Core_ServerPort_BoundPort" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_BoundPort.htm" title="BoundPort Property " tocid="P_Grpc_Core_ServerPort_BoundPort">BoundPort Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Credentials.htm" title="Credentials Property " tocid="P_Grpc_Core_ServerPort_Credentials">Credentials Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerPort_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Port.htm" title="Port Property " tocid="P_Grpc_Core_ServerPort_Port">Port Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort<span id="LSTBDBCF25C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBDBCF25C_0?cpp=::|nu=.");</script>BoundPort Property </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "P:Grpc.Core.ServerPort.BoundPort"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">BoundPort</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">BoundPort</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">int</span> <span class="identifier">BoundPort</span> {
+	<span class="identifier">int</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">BoundPort</span> : <span class="identifier">int</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><br />
+            The port actually bound by the server. This is useful if you let server
+            pick port automatically. <a href="F_Grpc_Core_ServerPort_PickUnused.htm">PickUnused</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Credentials.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Credentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cb062ea86691f0ac57c64715b6725b6db0a9ae59
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Credentials.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort.Credentials Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Credentials property" /><meta name="System.Keywords" content="ServerPort.Credentials property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.Credentials" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.get_Credentials" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerPort.Credentials" /><meta name="Description" content="summaryP:Grpc.Core.ServerPort.Credentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerPort_Credentials" /><meta name="guid" content="P_Grpc_Core_ServerPort_Credentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_BoundPort.htm" title="BoundPort Property " tocid="P_Grpc_Core_ServerPort_BoundPort">BoundPort Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Credentials.htm" title="Credentials Property " tocid="P_Grpc_Core_ServerPort_Credentials">Credentials Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerPort_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Port.htm" title="Port Property " tocid="P_Grpc_Core_ServerPort_Port">Port Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort<span id="LSTB7958D19_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTB7958D19_0?cpp=::|nu=.");</script>Credentials Property </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "P:Grpc.Core.ServerPort.Credentials"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">ServerCredentials</span> <span class="identifier">Credentials</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Credentials</span> <span class="keyword">As</span> <span class="identifier">ServerCredentials</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">ServerCredentials</span>^ <span class="identifier">Credentials</span> {
+	<span class="identifier">ServerCredentials</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Credentials</span> : <span class="identifier">ServerCredentials</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials</a><br />The server credentials.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Host.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Host.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5788f1ecdaa4793e43ce93ef9f58b9145d5918ee
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Host.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort.Host Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Host property" /><meta name="System.Keywords" content="ServerPort.Host property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.Host" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.get_Host" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerPort.Host" /><meta name="Description" content="summaryP:Grpc.Core.ServerPort.Host" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerPort_Host" /><meta name="guid" content="P_Grpc_Core_ServerPort_Host" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_BoundPort.htm" title="BoundPort Property " tocid="P_Grpc_Core_ServerPort_BoundPort">BoundPort Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Credentials.htm" title="Credentials Property " tocid="P_Grpc_Core_ServerPort_Credentials">Credentials Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerPort_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Port.htm" title="Port Property " tocid="P_Grpc_Core_ServerPort_Port">Port Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort<span id="LST41BD6AE5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST41BD6AE5_0?cpp=::|nu=.");</script>Host Property </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "P:Grpc.Core.ServerPort.Host"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Host</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Host</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Host</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Host</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a><br />The host.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Port.htm b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Port.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5db0562f51aea78033bec3c976ede4c41e6491a8
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_ServerPort_Port.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort.Port Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Port property" /><meta name="System.Keywords" content="ServerPort.Port property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.Port" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort.get_Port" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.ServerPort.Port" /><meta name="Description" content="summaryP:Grpc.Core.ServerPort.Port" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_ServerPort_Port" /><meta name="guid" content="P_Grpc_Core_ServerPort_Port" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_BoundPort.htm" title="BoundPort Property " tocid="P_Grpc_Core_ServerPort_BoundPort">BoundPort Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Credentials.htm" title="Credentials Property " tocid="P_Grpc_Core_ServerPort_Credentials">Credentials Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerPort_Host">Host Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Port.htm" title="Port Property " tocid="P_Grpc_Core_ServerPort_Port">Port Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort<span id="LSTBDF3CA22_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBDF3CA22_0?cpp=::|nu=.");</script>Port Property </td></tr></table><span class="introStyle"></span><div class="summary"><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;summary&gt; documentation for "P:Grpc.Core.ServerPort.Port"]</p></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">int</span> <span class="identifier">Port</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Port</span> <span class="keyword">As</span> <span class="identifier">Integer</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">int</span> <span class="identifier">Port</span> {
+	<span class="identifier">int</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Port</span> : <span class="identifier">int</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/td2s409d" target="_blank">Int32</a><br />The port.</div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Server_Ports.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Server_Ports.htm
new file mode 100644
index 0000000000000000000000000000000000000000..943d8173ea3aa166d59f69f0a0605ae67f3ca679
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Server_Ports.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.Ports Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Ports property" /><meta name="System.Keywords" content="Server.Ports property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.Ports" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.get_Ports" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Server.Ports" /><meta name="Description" content="Ports on which the server will listen once started. Register a port with this server by adding its definition to this collection." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Server_Ports" /><meta name="guid" content="P_Grpc_Core_Server_Ports" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Server.htm" title="Server Properties" tocid="Properties_T_Grpc_Core_Server">Server Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Ports.htm" title="Ports Property " tocid="P_Grpc_Core_Server_Ports">Ports Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Services.htm" title="Services Property " tocid="P_Grpc_Core_Server_Services">Services Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_ShutdownTask.htm" title="ShutdownTask Property " tocid="P_Grpc_Core_Server_ShutdownTask">ShutdownTask Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LSTC46C77DC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC46C77DC_0?cpp=::|nu=.");</script>Ports Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Ports on which the server will listen once started. Register a port with this
+            server by adding its definition to this collection.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Server<span id="LSTC46C77DC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC46C77DC_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</span> <span class="identifier">Ports</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Ports</span> <span class="keyword">As</span> <span class="identifier">Server<span id="LSTC46C77DC_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC46C77DC_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Server<span id="LSTC46C77DC_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC46C77DC_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</span>^ <span class="identifier">Ports</span> {
+	<span class="identifier">Server<span id="LSTC46C77DC_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC46C77DC_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Ports</span> : <span class="identifier">Server<span id="LSTC46C77DC_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC46C77DC_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Server_ServerPortCollection.htm">Server<span id="LSTC46C77DC_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC46C77DC_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Server_Services.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Server_Services.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ae85da5838e291bd4ec110c5b52e8b5f9286a678
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Server_Services.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.Services Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Services property" /><meta name="System.Keywords" content="Server.Services property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.Services" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.get_Services" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Server.Services" /><meta name="Description" content="Services that will be exported by the server once started. Register a service with this server by adding its definition to this collection." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Server_Services" /><meta name="guid" content="P_Grpc_Core_Server_Services" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Server.htm" title="Server Properties" tocid="Properties_T_Grpc_Core_Server">Server Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Ports.htm" title="Ports Property " tocid="P_Grpc_Core_Server_Ports">Ports Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Services.htm" title="Services Property " tocid="P_Grpc_Core_Server_Services">Services Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_ShutdownTask.htm" title="ShutdownTask Property " tocid="P_Grpc_Core_Server_ShutdownTask">ShutdownTask Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LST66D89B60_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66D89B60_0?cpp=::|nu=.");</script>Services Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Services that will be exported by the server once started. Register a service with this
+            server by adding its definition to this collection.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Server<span id="LST66D89B60_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66D89B60_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</span> <span class="identifier">Services</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Services</span> <span class="keyword">As</span> <span class="identifier">Server<span id="LST66D89B60_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66D89B60_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Server<span id="LST66D89B60_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66D89B60_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</span>^ <span class="identifier">Services</span> {
+	<span class="identifier">Server<span id="LST66D89B60_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66D89B60_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Services</span> : <span class="identifier">Server<span id="LST66D89B60_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66D89B60_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm">Server<span id="LST66D89B60_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66D89B60_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Server_ShutdownTask.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Server_ShutdownTask.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f9b26163d8cda03a34e8dcb204aa0578ac01eda2
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Server_ShutdownTask.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ShutdownTask Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ShutdownTask property" /><meta name="System.Keywords" content="Server.ShutdownTask property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ShutdownTask" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.get_ShutdownTask" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Server.ShutdownTask" /><meta name="Description" content="To allow awaiting termination of the server." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Server_ShutdownTask" /><meta name="guid" content="P_Grpc_Core_Server_ShutdownTask" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Server.htm" title="Server Properties" tocid="Properties_T_Grpc_Core_Server">Server Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Ports.htm" title="Ports Property " tocid="P_Grpc_Core_Server_Ports">Ports Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Services.htm" title="Services Property " tocid="P_Grpc_Core_Server_Services">Services Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_ShutdownTask.htm" title="ShutdownTask Property " tocid="P_Grpc_Core_Server_ShutdownTask">ShutdownTask Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LSTC8798B05_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC8798B05_0?cpp=::|nu=.");</script>ShutdownTask Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            To allow awaiting termination of the server.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">Task</span> <span class="identifier">ShutdownTask</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ShutdownTask</span> <span class="keyword">As</span> <span class="identifier">Task</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">Task</span>^ <span class="identifier">ShutdownTask</span> {
+	<span class="identifier">Task</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ShutdownTask</span> : <span class="identifier">Task</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm b/doc/ref/csharp/html/html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm
new file mode 100644
index 0000000000000000000000000000000000000000..459a8c7a4a33ebe332ca3e48c2ff92808d1e4532
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials.KeyCertificatePair Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="KeyCertificatePair property" /><meta name="System.Keywords" content="SslCredentials.KeyCertificatePair property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslCredentials.KeyCertificatePair" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslCredentials.get_KeyCertificatePair" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.SslCredentials.KeyCertificatePair" /><meta name="Description" content="Client side key and certificate pair. If null, client will not use key and certificate pair." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_SslCredentials_KeyCertificatePair" /><meta name="guid" content="P_Grpc_Core_SslCredentials_KeyCertificatePair" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslCredentials.htm" title="SslCredentials Properties" tocid="Properties_T_Grpc_Core_SslCredentials">SslCredentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslCredentials_KeyCertificatePair.htm" title="KeyCertificatePair Property " tocid="P_Grpc_Core_SslCredentials_KeyCertificatePair">KeyCertificatePair Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslCredentials_RootCertificates.htm" title="RootCertificates Property " tocid="P_Grpc_Core_SslCredentials_RootCertificates">RootCertificates Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials<span id="LSTEE43ACE5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEE43ACE5_0?cpp=::|nu=.");</script>KeyCertificatePair Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Client side key and certificate pair.
+            If null, client will not use key and certificate pair.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">KeyCertificatePair</span> <span class="identifier">KeyCertificatePair</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">KeyCertificatePair</span> <span class="keyword">As</span> <span class="identifier">KeyCertificatePair</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">KeyCertificatePair</span>^ <span class="identifier">KeyCertificatePair</span> {
+	<span class="identifier">KeyCertificatePair</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">KeyCertificatePair</span> : <span class="identifier">KeyCertificatePair</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_SslCredentials_RootCertificates.htm b/doc/ref/csharp/html/html/P_Grpc_Core_SslCredentials_RootCertificates.htm
new file mode 100644
index 0000000000000000000000000000000000000000..730008cad71e8e7ec2448893e1df0664e7a742b3
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_SslCredentials_RootCertificates.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials.RootCertificates Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RootCertificates property" /><meta name="System.Keywords" content="SslCredentials.RootCertificates property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslCredentials.RootCertificates" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslCredentials.get_RootCertificates" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.SslCredentials.RootCertificates" /><meta name="Description" content="PEM encoding of the server root certificates." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_SslCredentials_RootCertificates" /><meta name="guid" content="P_Grpc_Core_SslCredentials_RootCertificates" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslCredentials.htm" title="SslCredentials Properties" tocid="Properties_T_Grpc_Core_SslCredentials">SslCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslCredentials_KeyCertificatePair.htm" title="KeyCertificatePair Property " tocid="P_Grpc_Core_SslCredentials_KeyCertificatePair">KeyCertificatePair Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslCredentials_RootCertificates.htm" title="RootCertificates Property " tocid="P_Grpc_Core_SslCredentials_RootCertificates">RootCertificates Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials<span id="LST9E8BA0ED_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9E8BA0ED_0?cpp=::|nu=.");</script>RootCertificates Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            PEM encoding of the server root certificates.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">RootCertificates</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">RootCertificates</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">RootCertificates</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RootCertificates</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm b/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0eb8dea6ff9c6f6576d4d2923ef6cec31df15ad8
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials.ForceClientAuthentication Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ForceClientAuthentication property" /><meta name="System.Keywords" content="SslServerCredentials.ForceClientAuthentication property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.ForceClientAuthentication" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.get_ForceClientAuthentication" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.SslServerCredentials.ForceClientAuthentication" /><meta name="Description" content="If true, the authenticity of client check will be enforced." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication" /><meta name="guid" content="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Properties" tocid="Properties_T_Grpc_Core_SslServerCredentials">SslServerCredentials Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" title="ForceClientAuthentication Property " tocid="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication">ForceClientAuthentication Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" title="KeyCertificatePairs Property " tocid="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs">KeyCertificatePairs Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_RootCertificates.htm" title="RootCertificates Property " tocid="P_Grpc_Core_SslServerCredentials_RootCertificates">RootCertificates Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials<span id="LSTCA30CF5E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA30CF5E_0?cpp=::|nu=.");</script>ForceClientAuthentication Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            If true, the authenticity of client check will be enforced.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">bool</span> <span class="identifier">ForceClientAuthentication</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">ForceClientAuthentication</span> <span class="keyword">As</span> <span class="identifier">Boolean</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">bool</span> <span class="identifier">ForceClientAuthentication</span> {
+	<span class="identifier">bool</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">ForceClientAuthentication</span> : <span class="identifier">bool</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/a28wyd50" target="_blank">Boolean</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm b/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm
new file mode 100644
index 0000000000000000000000000000000000000000..530f0677db1bdf8400007fc97a72d47da0d92998
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials.KeyCertificatePairs Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="KeyCertificatePairs property" /><meta name="System.Keywords" content="SslServerCredentials.KeyCertificatePairs property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.KeyCertificatePairs" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.get_KeyCertificatePairs" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.SslServerCredentials.KeyCertificatePairs" /><meta name="Description" content="Key-certificate pairs." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs" /><meta name="guid" content="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Properties" tocid="Properties_T_Grpc_Core_SslServerCredentials">SslServerCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" title="ForceClientAuthentication Property " tocid="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication">ForceClientAuthentication Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" title="KeyCertificatePairs Property " tocid="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs">KeyCertificatePairs Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_RootCertificates.htm" title="RootCertificates Property " tocid="P_Grpc_Core_SslServerCredentials_RootCertificates">RootCertificates Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials<span id="LST66B91F8F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66B91F8F_0?cpp=::|nu=.");</script>KeyCertificatePairs Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Key-certificate pairs.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">IList</span>&lt;<span class="identifier">KeyCertificatePair</span>&gt; <span class="identifier">KeyCertificatePairs</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">KeyCertificatePairs</span> <span class="keyword">As</span> <span class="identifier">IList</span>(<span class="keyword">Of</span> <span class="identifier">KeyCertificatePair</span>)
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">IList</span>&lt;<span class="identifier">KeyCertificatePair</span>^&gt;^ <span class="identifier">KeyCertificatePairs</span> {
+	<span class="identifier">IList</span>&lt;<span class="identifier">KeyCertificatePair</span>^&gt;^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">KeyCertificatePairs</span> : <span class="identifier">IList</span>&lt;<span class="identifier">KeyCertificatePair</span>&gt; <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/5y536ey6" target="_blank">IList</a><span id="LST66B91F8F_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66B91F8F_1?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair</a><span id="LST66B91F8F_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST66B91F8F_2?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm b/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm
new file mode 100644
index 0000000000000000000000000000000000000000..44fb25a5570f0df013d2eed6f2215c745d802dce
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials.RootCertificates Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RootCertificates property" /><meta name="System.Keywords" content="SslServerCredentials.RootCertificates property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.RootCertificates" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials.get_RootCertificates" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.SslServerCredentials.RootCertificates" /><meta name="Description" content="PEM encoded client root certificates." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_SslServerCredentials_RootCertificates" /><meta name="guid" content="P_Grpc_Core_SslServerCredentials_RootCertificates" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Properties" tocid="Properties_T_Grpc_Core_SslServerCredentials">SslServerCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" title="ForceClientAuthentication Property " tocid="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication">ForceClientAuthentication Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" title="KeyCertificatePairs Property " tocid="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs">KeyCertificatePairs Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_RootCertificates.htm" title="RootCertificates Property " tocid="P_Grpc_Core_SslServerCredentials_RootCertificates">RootCertificates Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials<span id="LSTCD107BDA_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCD107BDA_0?cpp=::|nu=.");</script>RootCertificates Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            PEM encoded client root certificates.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">RootCertificates</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">RootCertificates</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">RootCertificates</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">RootCertificates</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Status_Detail.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Status_Detail.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7510c98b0a53a10efecf72f6a9d255ceefe59917
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Status_Detail.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status.Detail Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Detail property" /><meta name="System.Keywords" content="Status.Detail property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.Detail" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.get_Detail" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Status.Detail" /><meta name="Description" content="Gets the detail." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Status_Detail" /><meta name="guid" content="P_Grpc_Core_Status_Detail" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Status.htm" title="Status Properties" tocid="Properties_T_Grpc_Core_Status">Status Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Status_Detail.htm" title="Detail Property " tocid="P_Grpc_Core_Status_Detail">Detail Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Status_StatusCode.htm" title="StatusCode Property " tocid="P_Grpc_Core_Status_StatusCode">StatusCode Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status<span id="LSTC6E4E64E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC6E4E64E_0?cpp=::|nu=.");</script>Detail Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the detail.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">string</span> <span class="identifier">Detail</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Detail</span> <span class="keyword">As</span> <span class="identifier">String</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">String</span>^ <span class="identifier">Detail</span> {
+	<span class="identifier">String</span>^ <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Detail</span> : <span class="identifier">string</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_Status_StatusCode.htm b/doc/ref/csharp/html/html/P_Grpc_Core_Status_StatusCode.htm
new file mode 100644
index 0000000000000000000000000000000000000000..accc218630c7e3cb4da347aa3b8dc611cd24d578
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_Status_StatusCode.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status.StatusCode Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="StatusCode property" /><meta name="System.Keywords" content="Status.StatusCode property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.StatusCode" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status.get_StatusCode" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.Status.StatusCode" /><meta name="Description" content="Gets the gRPC status code. OK indicates success, all other values indicate an error." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_Status_StatusCode" /><meta name="guid" content="P_Grpc_Core_Status_StatusCode" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Status.htm" title="Status Properties" tocid="Properties_T_Grpc_Core_Status">Status Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Status_Detail.htm" title="Detail Property " tocid="P_Grpc_Core_Status_Detail">Detail Property </a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Status_StatusCode.htm" title="StatusCode Property " tocid="P_Grpc_Core_Status_StatusCode">StatusCode Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status<span id="LST8ACAFB60_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8ACAFB60_0?cpp=::|nu=.");</script>StatusCode Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the gRPC status code. OK indicates success, all other values indicate an error.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">StatusCode</span> <span class="identifier">StatusCode</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">StatusCode</span> <span class="keyword">As</span> <span class="identifier">StatusCode</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">StatusCode</span> <span class="identifier">StatusCode</span> {
+	<span class="identifier">StatusCode</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">StatusCode</span> : <span class="identifier">StatusCode</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_StatusCode.htm">StatusCode</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/P_Grpc_Core_WriteOptions_Flags.htm b/doc/ref/csharp/html/html/P_Grpc_Core_WriteOptions_Flags.htm
new file mode 100644
index 0000000000000000000000000000000000000000..5ef39577b85d9b5fbcca65132893b69b719b1b12
--- /dev/null
+++ b/doc/ref/csharp/html/html/P_Grpc_Core_WriteOptions_Flags.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteOptions.Flags Property </title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Flags property" /><meta name="System.Keywords" content="WriteOptions.Flags property" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteOptions.Flags" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteOptions.get_Flags" /><meta name="Microsoft.Help.Id" content="P:Grpc.Core.WriteOptions.Flags" /><meta name="Description" content="Gets the write flags." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="P_Grpc_Core_WriteOptions_Flags" /><meta name="guid" content="P_Grpc_Core_WriteOptions_Flags" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Properties" tocid="Properties_T_Grpc_Core_WriteOptions">WriteOptions Properties</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_WriteOptions_Flags.htm" title="Flags Property " tocid="P_Grpc_Core_WriteOptions_Flags">Flags Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteOptions<span id="LSTD40C32E3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD40C32E3_0?cpp=::|nu=.");</script>Flags Property </td></tr></table><span class="introStyle"></span><div class="summary">
+            Gets the write flags.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="identifier">WriteFlags</span> <span class="identifier">Flags</span> { <span class="keyword">get</span>; }</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">ReadOnly</span> <span class="keyword">Property</span> <span class="identifier">Flags</span> <span class="keyword">As</span> <span class="identifier">WriteFlags</span>
+	<span class="keyword">Get</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span>:
+<span class="keyword">property</span> <span class="identifier">WriteFlags</span> <span class="identifier">Flags</span> {
+	<span class="identifier">WriteFlags</span> <span class="keyword">get</span> ();
+}</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">member</span> <span class="identifier">Flags</span> : <span class="identifier">WriteFlags</span> <span class="keyword">with</span> <span class="keyword">get</span>
+</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Property Value</h4>Type: <a href="T_Grpc_Core_WriteFlags.htm">WriteFlags</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_WriteOptions.htm">WriteOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..86ce8b14978bc57af791467e49aa88b13095083b
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E class, properties" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse) class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.AsyncClientStreamingCall`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_AsyncClientStreamingCall_2" /><meta name="guid" content="Properties_T_Grpc_Core_AsyncClientStreamingCall_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" title="ResponseAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync">ResponseAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LSTC62EFC7B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC62EFC7B_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTC62EFC7B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC62EFC7B_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LSTC62EFC7B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC62EFC7B_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC62EFC7B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC62EFC7B_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm">RequestStream</a></td><td><div class="summary">
+            Async stream to send streaming requests.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm">ResponseAsync</a></td><td><div class="summary">
+            Asynchronous call result.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncClientStreamingCall_2.htm">AsyncClientStreamingCall<span id="LSTC62EFC7B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC62EFC7B_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC62EFC7B_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC62EFC7B_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..40c4705d23296f2ba8026e6f37222f900d14383e
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E class, properties" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse) class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.AsyncDuplexStreamingCall`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2" /><meta name="guid" content="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" title="RequestStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream">RequestStream Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" title="ResponseStream Property " tocid="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream">ResponseStream Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LSTE7F59294_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7F59294_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTE7F59294_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7F59294_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LSTE7F59294_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7F59294_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTE7F59294_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7F59294_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm">RequestStream</a></td><td><div class="summary">
+            Async stream to send streaming requests.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm">ResponseStream</a></td><td><div class="summary">
+            Async stream to read streaming responses.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm">AsyncDuplexStreamingCall<span id="LSTE7F59294_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7F59294_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTE7F59294_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE7F59294_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7d3a77b2cbd9153c8a219c3ea5a0e37fe39afb44
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E class, properties" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse) class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.AsyncServerStreamingCall`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_AsyncServerStreamingCall_1" /><meta name="guid" content="Properties_T_Grpc_Core_AsyncServerStreamingCall_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" title="ResponseStream Property " tocid="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream">ResponseStream Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LST5247EF2A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5247EF2A_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST5247EF2A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5247EF2A_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LST5247EF2A_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5247EF2A_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST5247EF2A_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5247EF2A_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm">ResponseStream</a></td><td><div class="summary">
+            Async stream to read streaming responses.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncServerStreamingCall_1.htm">AsyncServerStreamingCall<span id="LST5247EF2A_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5247EF2A_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST5247EF2A_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5247EF2A_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d9e266b4371198b727e82592ba514822ceb0fc20
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E class, properties" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse) class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.AsyncUnaryCall`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_AsyncUnaryCall_1" /><meta name="guid" content="Properties_T_Grpc_Core_AsyncUnaryCall_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" title="ResponseAsync Property " tocid="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync">ResponseAsync Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" title="ResponseHeadersAsync Property " tocid="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync">ResponseHeadersAsync Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LSTF5A830B8_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF5A830B8_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTF5A830B8_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF5A830B8_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LSTF5A830B8_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF5A830B8_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTF5A830B8_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF5A830B8_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm">ResponseAsync</a></td><td><div class="summary">
+            Asynchronous call result.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_AsyncUnaryCall_1.htm">AsyncUnaryCall<span id="LSTF5A830B8_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF5A830B8_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTF5A830B8_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF5A830B8_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..258b83626a17dd61b4821e3c9abf23cd7c529193
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E structure, properties" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse) structure, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.CallInvocationDetails`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_CallInvocationDetails_2" /><meta name="guid" content="Properties_T_Grpc_Core_CallInvocationDetails_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Host.htm" title="Host Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Method.htm" title="Method Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_Options.htm" title="Options Property " tocid="P_Grpc_Core_CallInvocationDetails_2_Options">Options Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller">ResponseMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LSTD145846E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD145846E_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTD145846E_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD145846E_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTD145846E_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD145846E_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTD145846E_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD145846E_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm">Channel</a></td><td><div class="summary">
+            Get channel associated with this call.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Host.htm">Host</a></td><td><div class="summary">
+            Get name of host.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Method.htm">Method</a></td><td><div class="summary">
+            Gets name of method to be called.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Options.htm">Options</a></td><td><div class="summary">
+            Gets the call options.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm">RequestMarshaller</a></td><td><div class="summary">
+            Gets marshaller used to serialize requests.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm">ResponseMarshaller</a></td><td><div class="summary">
+            Gets marshaller used to deserialized responses.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallInvocationDetails_2.htm">CallInvocationDetails<span id="LSTD145846E_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD145846E_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTD145846E_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD145846E_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_CallOptions.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_CallOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..53786c4c4821ccd5cf7a0d43316537e8da5deeff
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_CallOptions.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallOptions structure, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.CallOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_CallOptions" /><meta name="guid" content="Properties_T_Grpc_Core_CallOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_CallOptions_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_CallOptions_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_Headers.htm" title="Headers Property " tocid="P_Grpc_Core_CallOptions_Headers">Headers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_PropagationToken.htm" title="PropagationToken Property " tocid="P_Grpc_Core_CallOptions_PropagationToken">PropagationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_CallOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_CallOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_CallOptions.htm">CallOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_CancellationToken.htm">CancellationToken</a></td><td><div class="summary">
+            Token that can be used for cancelling the call.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_Deadline.htm">Deadline</a></td><td><div class="summary">
+            Call deadline.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_Headers.htm">Headers</a></td><td><div class="summary">
+            Headers to send at the beginning of the call.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_PropagationToken.htm">PropagationToken</a></td><td><div class="summary">
+            Token for propagating parent call context.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for this call.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_CallOptions.htm">CallOptions Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Channel.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Channel.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d2b2c776ea75bcb3d18d6ccd0728e91463b10d76
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Channel.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Channel class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Channel" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Channel" /><meta name="guid" content="Properties_T_Grpc_Core_Channel" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Channel.htm" title="Channel Properties" tocid="Properties_T_Grpc_Core_Channel">Channel Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_ResolvedTarget.htm" title="ResolvedTarget Property " tocid="P_Grpc_Core_Channel_ResolvedTarget">ResolvedTarget Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_State.htm" title="State Property " tocid="P_Grpc_Core_Channel_State">State Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Channel_Target.htm" title="Target Property " tocid="P_Grpc_Core_Channel_Target">Target Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Channel.htm">Channel</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Channel_ResolvedTarget.htm">ResolvedTarget</a></td><td><div class="summary">Resolved address of the remote endpoint in URI format.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Channel_State.htm">State</a></td><td><div class="summary">
+            Gets current connectivity state of this channel.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Channel_Target.htm">Target</a></td><td><div class="summary">The original target used to create the channel.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Channel.htm">Channel Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ChannelOption.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ChannelOption.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a788a1d8093d8778bf4237001c87b6fbd48bb0eb
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ChannelOption.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelOption class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.ChannelOption" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_ChannelOption" /><meta name="guid" content="Properties_T_Grpc_Core_ChannelOption" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Properties" tocid="Properties_T_Grpc_Core_ChannelOption">ChannelOption Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_IntValue.htm" title="IntValue Property " tocid="P_Grpc_Core_ChannelOption_IntValue">IntValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Name.htm" title="Name Property " tocid="P_Grpc_Core_ChannelOption_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_StringValue.htm" title="StringValue Property " tocid="P_Grpc_Core_ChannelOption_StringValue">StringValue Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ChannelOption_Type.htm" title="Type Property " tocid="P_Grpc_Core_ChannelOption_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ChannelOption.htm">ChannelOption</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_IntValue.htm">IntValue</a></td><td><div class="summary">
+            Gets the integer value the <span class="code">ChannelOption</span>.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_Name.htm">Name</a></td><td><div class="summary">
+            Gets the name of the <span class="code">ChannelOption</span>.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_StringValue.htm">StringValue</a></td><td><div class="summary">
+            Gets the string value the <span class="code">ChannelOption</span>.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_Type.htm">Type</a></td><td><div class="summary">
+            Gets the type of the <span class="code">ChannelOption</span>.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ChannelOption.htm">ChannelOption Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ClientBase.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ClientBase.htm
new file mode 100644
index 0000000000000000000000000000000000000000..eb63eea16b6af7658da8e12f5dbb81aae34ab9fc
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ClientBase.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ClientBase class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.ClientBase" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_ClientBase" /><meta name="guid" content="Properties_T_Grpc_Core_ClientBase" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ClientBase.htm" title="ClientBase Properties" tocid="Properties_T_Grpc_Core_ClientBase">ClientBase Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Channel.htm" title="Channel Property " tocid="P_Grpc_Core_ClientBase_Channel">Channel Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_HeaderInterceptor.htm" title="HeaderInterceptor Property " tocid="P_Grpc_Core_ClientBase_HeaderInterceptor">HeaderInterceptor Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ClientBase_Host.htm" title="Host Property " tocid="P_Grpc_Core_ClientBase_Host">Host Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ClientBase.htm">ClientBase</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ClientBase_Channel.htm">Channel</a></td><td><div class="summary">
+            Channel associated with this client.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ClientBase_HeaderInterceptor.htm">HeaderInterceptor</a></td><td><div class="summary">
+            Can be used to register a custom header (request metadata) interceptor.
+            The interceptor is invoked each time a new call on this client is started.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ClientBase_Host.htm">Host</a></td><td><div class="summary">
+            gRPC supports multiple "hosts" being served by a single server. 
+            This property can be used to set the target host explicitly.
+            By default, this will be set to <span class="code">null</span> with the meaning
+            "use default host".
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ClientBase.htm">ClientBase Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ContextPropagationOptions.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ContextPropagationOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f32cf204694d4e98afeee83200ce9b0a12155988
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ContextPropagationOptions.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ContextPropagationOptions class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.ContextPropagationOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_ContextPropagationOptions" /><meta name="guid" content="Properties_T_Grpc_Core_ContextPropagationOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Properties" tocid="Properties_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm" title="IsPropagateCancellation Property " tocid="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation">IsPropagateCancellation Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm" title="IsPropagateDeadline Property " tocid="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline">IsPropagateDeadline Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm">IsPropagateCancellation</a></td><td><div class="summary"><span class="code">true</span> if parent call's cancellation token should be propagated to the child call.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm">IsPropagateDeadline</a></td><td><div class="summary"><span class="code">true</span> if parent call's deadline should be propagated to the child call.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ContextPropagationOptions.htm">ContextPropagationOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Credentials.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Credentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..acc2578652ecb7075a58239fd454ac82b875ceda
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Credentials.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Credentials Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Credentials class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Credentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Credentials" /><meta name="guid" content="Properties_T_Grpc_Core_Credentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Credentials.htm" title="Credentials Properties" tocid="Properties_T_Grpc_Core_Credentials">Credentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Credentials_Insecure.htm" title="Insecure Property " tocid="P_Grpc_Core_Credentials_Insecure">Insecure Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Credentials Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Credentials.htm">Credentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_Credentials_Insecure.htm">Insecure</a></td><td><div class="summary">
+            Returns instance of credential that provides no security and 
+            will result in creating an unsecure channel with no encryption whatsoever.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Credentials.htm">Credentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_GrpcEnvironment.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_GrpcEnvironment.htm
new file mode 100644
index 0000000000000000000000000000000000000000..438d48f35a60f5c376ffa90471224f8a0ca9344b
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_GrpcEnvironment.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GrpcEnvironment Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GrpcEnvironment class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.GrpcEnvironment" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_GrpcEnvironment" /><meta name="guid" content="Properties_T_Grpc_Core_GrpcEnvironment" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Properties" tocid="Properties_T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_GrpcEnvironment_Logger.htm" title="Logger Property " tocid="P_Grpc_Core_GrpcEnvironment_Logger">Logger Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">GrpcEnvironment Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_GrpcEnvironment.htm">GrpcEnvironment</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_GrpcEnvironment_Logger.htm">Logger</a></td><td><div class="summary">
+            Gets application-wide logger used by gRPC.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_GrpcEnvironment.htm">GrpcEnvironment Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..53aa3b5f90a43a49d64d5d8bc8993d1aef05345d
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamReader(T) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IAsyncStreamReader%3CT%3E interface, properties" /><meta name="System.Keywords" content="IAsyncStreamReader(Of T) interface, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.IAsyncStreamReader`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_IAsyncStreamReader_1" /><meta name="guid" content="Properties_T_Grpc_Core_IAsyncStreamReader_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Properties" tocid="Properties_T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Methods" tocid="Methods_T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamReader<span id="LSTD20F0A63_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTD20F0A63_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader<span id="LSTD20F0A63_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTD20F0A63_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><span class="nolink">Current</span></td><td> (Inherited from <span class="nolink">IAsyncEnumerator</span><span id="LSTD20F0A63_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><a href="T_Grpc_Core_IAsyncStreamReader_1.htm"><span class="typeparameter">T</span></a><span id="LSTD20F0A63_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IAsyncStreamReader_1.htm">IAsyncStreamReader<span id="LSTD20F0A63_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTD20F0A63_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTD20F0A63_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ad71094d4b94f3725b36b179f9aa153fccbfe3f0
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamWriter(T) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IAsyncStreamWriter%3CT%3E interface, properties" /><meta name="System.Keywords" content="IAsyncStreamWriter(Of T) interface, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.IAsyncStreamWriter`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_IAsyncStreamWriter_1" /><meta name="guid" content="Properties_T_Grpc_Core_IAsyncStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamWriter<span id="LST4B9417F9_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4B9417F9_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST4B9417F9_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4B9417F9_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST4B9417F9_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4B9417F9_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST4B9417F9_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4B9417F9_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for the next write.
+            If null, default options will be used.
+            Once set, this property maintains its value across subsequent
+            writes.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST4B9417F9_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4B9417F9_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST4B9417F9_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4B9417F9_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f04ab0d40d93cc48c98d33beb0824e19a188930b
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IClientStreamWriter(T) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IClientStreamWriter%3CT%3E interface, properties" /><meta name="System.Keywords" content="IClientStreamWriter(Of T) interface, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.IClientStreamWriter`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_IClientStreamWriter_1" /><meta name="guid" content="Properties_T_Grpc_Core_IClientStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IClientStreamWriter<span id="LST726B2644_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST726B2644_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter<span id="LST726B2644_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST726B2644_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for the next write.
+            If null, default options will be used.
+            Once set, this property maintains its value across subsequent
+            writes.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST726B2644_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST726B2644_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IClientStreamWriter_1.htm">IClientStreamWriter<span id="LST726B2644_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST726B2644_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST726B2644_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IHasWriteOptions.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IHasWriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..fd1f5ca0c200a57f152be0941f81d0ddff98d2a1
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IHasWriteOptions.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IHasWriteOptions Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IHasWriteOptions interface, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.IHasWriteOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_IHasWriteOptions" /><meta name="guid" content="Properties_T_Grpc_Core_IHasWriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Properties" tocid="Properties_T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IHasWriteOptions_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_IHasWriteOptions_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IHasWriteOptions Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IHasWriteOptions.htm">IHasWriteOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IHasWriteOptions_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Gets or sets the write options.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IHasWriteOptions.htm">IHasWriteOptions Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IMethod.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IMethod.htm
new file mode 100644
index 0000000000000000000000000000000000000000..efa7de8377eb1244fa6d1cd14f4808f5d6408081
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IMethod.htm
@@ -0,0 +1,12 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IMethod Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IMethod interface, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.IMethod" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_IMethod" /><meta name="guid" content="Properties_T_Grpc_Core_IMethod" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IMethod.htm" title="IMethod Properties" tocid="Properties_T_Grpc_Core_IMethod">IMethod Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_IMethod_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Name.htm" title="Name Property " tocid="P_Grpc_Core_IMethod_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_IMethod_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_IMethod_Type.htm" title="Type Property " tocid="P_Grpc_Core_IMethod_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IMethod Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IMethod.htm">IMethod</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_FullName.htm">FullName</a></td><td><div class="summary">
+            Gets the fully qualified name of the method. On the server side, methods are dispatched
+            based on this name.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_Name.htm">Name</a></td><td><div class="summary">
+            Gets the unqualified name of the method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_ServiceName.htm">ServiceName</a></td><td><div class="summary">
+            Gets the name of the service to which this method belongs.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_Type.htm">Type</a></td><td><div class="summary">
+            Gets the type of the method.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IMethod.htm">IMethod Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0bebdd5711913467336d2ff131e6853e4be6c532
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IServerStreamWriter(T) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IServerStreamWriter%3CT%3E interface, properties" /><meta name="System.Keywords" content="IServerStreamWriter(Of T) interface, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.IServerStreamWriter`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_IServerStreamWriter_1" /><meta name="guid" content="Properties_T_Grpc_Core_IServerStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IServerStreamWriter<span id="LST8B285F68_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST8B285F68_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_IServerStreamWriter_1.htm">IServerStreamWriter<span id="LST8B285F68_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST8B285F68_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for the next write.
+            If null, default options will be used.
+            Once set, this property maintains its value across subsequent
+            writes.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST8B285F68_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST8B285F68_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_IServerStreamWriter_1.htm">IServerStreamWriter<span id="LST8B285F68_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST8B285F68_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8B285F68_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Interface</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_KeyCertificatePair.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_KeyCertificatePair.htm
new file mode 100644
index 0000000000000000000000000000000000000000..286a0cec9e58a8cfcc5a8def44030b911adb2ac8
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_KeyCertificatePair.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>KeyCertificatePair Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="KeyCertificatePair class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.KeyCertificatePair" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_KeyCertificatePair" /><meta name="guid" content="Properties_T_Grpc_Core_KeyCertificatePair" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Properties" tocid="Properties_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_KeyCertificatePair_CertificateChain.htm" title="CertificateChain Property " tocid="P_Grpc_Core_KeyCertificatePair_CertificateChain">CertificateChain Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_KeyCertificatePair_PrivateKey.htm" title="PrivateKey Property " tocid="P_Grpc_Core_KeyCertificatePair_PrivateKey">PrivateKey Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">KeyCertificatePair Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_KeyCertificatePair_CertificateChain.htm">CertificateChain</a></td><td><div class="summary">
+            PEM encoded certificate chain.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_KeyCertificatePair_PrivateKey.htm">PrivateKey</a></td><td><div class="summary">
+            PEM encoded private key.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_KeyCertificatePair.htm">KeyCertificatePair Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Marshaller_1.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Marshaller_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2f8b99b98eaffe85d95df4fde17f4e3ce05babee
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Marshaller_1.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshaller(T) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Marshaller%3CT%3E structure, properties" /><meta name="System.Keywords" content="Marshaller(Of T) structure, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Marshaller`1" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Marshaller_1" /><meta name="guid" content="Properties_T_Grpc_Core_Marshaller_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Properties" tocid="Properties_T_Grpc_Core_Marshaller_1">Marshaller(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshaller_1_Deserializer.htm" title="Deserializer Property " tocid="P_Grpc_Core_Marshaller_1_Deserializer">Deserializer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshaller_1_Serializer.htm" title="Serializer Property " tocid="P_Grpc_Core_Marshaller_1_Serializer">Serializer Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshaller<span id="LST8E942DF6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E942DF6_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST8E942DF6_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E942DF6_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LST8E942DF6_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E942DF6_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST8E942DF6_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E942DF6_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Marshaller_1_Deserializer.htm">Deserializer</a></td><td><div class="summary">
+            Gets the deserializer function.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Marshaller_1_Serializer.htm">Serializer</a></td><td><div class="summary">
+            Gets the serializer function.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshaller_1.htm">Marshaller<span id="LST8E942DF6_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E942DF6_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST8E942DF6_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E942DF6_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Marshallers.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Marshallers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c104a3c2db14d2b1242a1f0c39a1457f34ff1d69
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Marshallers.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshallers Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Marshallers class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Marshallers" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Marshallers" /><meta name="guid" content="Properties_T_Grpc_Core_Marshallers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshallers.htm" title="Marshallers Properties" tocid="Properties_T_Grpc_Core_Marshallers">Marshallers Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Marshallers_StringMarshaller.htm" title="StringMarshaller Property " tocid="P_Grpc_Core_Marshallers_StringMarshaller">StringMarshaller Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshallers Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Marshallers.htm">Marshallers</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_Marshallers_StringMarshaller.htm">StringMarshaller</a></td><td><div class="summary">
+            Returns a marshaller for <span class="code">string</span> type. This is useful for testing.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Marshallers.htm">Marshallers Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Metadata.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Metadata.htm
new file mode 100644
index 0000000000000000000000000000000000000000..48674e9e0f26541cb561a9b7f02d461d4de4be78
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Metadata.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Metadata class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Metadata" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Metadata" /><meta name="guid" content="Properties_T_Grpc_Core_Metadata" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata.htm" title="Metadata Properties" tocid="Properties_T_Grpc_Core_Metadata">Metadata Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Count.htm" title="Count Property " tocid="P_Grpc_Core_Metadata_Count">Count Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_IsReadOnly.htm" title="IsReadOnly Property " tocid="P_Grpc_Core_Metadata_IsReadOnly">IsReadOnly Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Item.htm" title="Item Property " tocid="P_Grpc_Core_Metadata_Item">Item Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Metadata.htm">Metadata</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Count.htm">Count</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_IsReadOnly.htm">IsReadOnly</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Item.htm">Item</a></td><td /></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata.htm">Metadata Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Metadata_Entry.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Metadata_Entry.htm
new file mode 100644
index 0000000000000000000000000000000000000000..30f20816be5fa4ba52fe493fe831aac0563bb174
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Metadata_Entry.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Entry Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Entry structure, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Metadata.Entry" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Metadata_Entry" /><meta name="guid" content="Properties_T_Grpc_Core_Metadata_Entry" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata_Entry.htm" title="Entry Properties" tocid="Properties_T_Grpc_Core_Metadata_Entry">Entry Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_IsBinary.htm" title="IsBinary Property " tocid="P_Grpc_Core_Metadata_Entry_IsBinary">IsBinary Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Key.htm" title="Key Property " tocid="P_Grpc_Core_Metadata_Entry_Key">Key Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_Value.htm" title="Value Property " tocid="P_Grpc_Core_Metadata_Entry_Value">Value Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Metadata_Entry_ValueBytes.htm" title="ValueBytes Property " tocid="P_Grpc_Core_Metadata_Entry_ValueBytes">ValueBytes Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Entry Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST99BD1037_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99BD1037_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_IsBinary.htm">IsBinary</a></td><td><div class="summary">
+            Returns <span class="code">true</span> if this entry is a binary-value entry.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_Key.htm">Key</a></td><td><div class="summary">
+            Gets the metadata entry key.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_Value.htm">Value</a></td><td><div class="summary">
+            Gets the string value of this metadata entry.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_ValueBytes.htm">ValueBytes</a></td><td><div class="summary">
+            Gets the binary value of this metadata entry.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Metadata_Entry.htm">Metadata<span id="LST99BD1037_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST99BD1037_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Method_2.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Method_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..776f80359820bed45bbcad4c980752653eef5d68
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Method_2.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse) Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E class, properties" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse) class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Method`2" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Method_2" /><meta name="guid" content="Properties_T_Grpc_Core_Method_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_FullName.htm" title="FullName Property " tocid="P_Grpc_Core_Method_2_FullName">FullName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Name.htm" title="Name Property " tocid="P_Grpc_Core_Method_2_Name">Name Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_RequestMarshaller.htm" title="RequestMarshaller Property " tocid="P_Grpc_Core_Method_2_RequestMarshaller">RequestMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ResponseMarshaller.htm" title="ResponseMarshaller Property " tocid="P_Grpc_Core_Method_2_ResponseMarshaller">ResponseMarshaller Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_ServiceName.htm" title="ServiceName Property " tocid="P_Grpc_Core_Method_2_ServiceName">ServiceName Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Method_2_Type.htm" title="Type Property " tocid="P_Grpc_Core_Method_2_Type">Type Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LST5F3646C5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5F3646C5_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST5F3646C5_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5F3646C5_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Method_2.htm">Method<span id="LST5F3646C5_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5F3646C5_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST5F3646C5_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5F3646C5_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a> generic type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_FullName.htm">FullName</a></td><td><div class="summary">
+            Gets the fully qualified name of the method. On the server side, methods are dispatched
+            based on this name.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_Name.htm">Name</a></td><td><div class="summary">
+            Gets the unqualified name of the method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_RequestMarshaller.htm">RequestMarshaller</a></td><td><div class="summary">
+            Gets the marshaller used for request messages.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_ResponseMarshaller.htm">ResponseMarshaller</a></td><td><div class="summary">
+            Gets the marshaller used for response messages.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_ServiceName.htm">ServiceName</a></td><td><div class="summary">
+            Gets the name of the service to which this method belongs.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_Type.htm">Type</a></td><td><div class="summary">
+            Gets the type of the method.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Method_2.htm">Method<span id="LST5F3646C5_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5F3646C5_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST5F3646C5_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5F3646C5_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script> Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_RpcException.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_RpcException.htm
new file mode 100644
index 0000000000000000000000000000000000000000..2d40825eef7567bb698fe7e4a0001e740e5dbce3
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_RpcException.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RpcException class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.RpcException" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_RpcException" /><meta name="guid" content="Properties_T_Grpc_Core_RpcException" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_RpcException.htm" title="RpcException Properties" tocid="Properties_T_Grpc_Core_RpcException">RpcException Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_RpcException_Status.htm" title="Status Property " tocid="P_Grpc_Core_RpcException_Status">Status Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_RpcException.htm">RpcException</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2wyfbc48" target="_blank">Data</a></td><td><div class="summary">Gets a collection of key/value pairs that provide additional user-defined information about the exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/71tawy4s" target="_blank">HelpLink</a></td><td><div class="summary">Gets or sets a link to the help file associated with this exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/sh5cw61c" target="_blank">HResult</a></td><td><div class="summary">Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/902sca80" target="_blank">InnerException</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a> instance that caused the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/9btwf6wk" target="_blank">Message</a></td><td><div class="summary">Gets a message that describes the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/85weac5w" target="_blank">Source</a></td><td><div class="summary">Gets or sets the name of the application or the object that causes the error.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dxzhy005" target="_blank">StackTrace</a></td><td><div class="summary">Gets a string representation of the immediate frames on the call stack.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_RpcException_Status.htm">Status</a></td><td><div class="summary">
+            Resulting status of the call.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2wchw354" target="_blank">TargetSite</a></td><td><div class="summary">Gets the method that throws the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_RpcException.htm">RpcException Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Server.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Server.htm
new file mode 100644
index 0000000000000000000000000000000000000000..38762cc5a86f2ae855eaf6d0a26e63e0a75779c3
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Server.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Server class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Server" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Server" /><meta name="guid" content="Properties_T_Grpc_Core_Server" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Server.htm" title="Server Properties" tocid="Properties_T_Grpc_Core_Server">Server Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Ports.htm" title="Ports Property " tocid="P_Grpc_Core_Server_Ports">Ports Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_Services.htm" title="Services Property " tocid="P_Grpc_Core_Server_Services">Services Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Server_ShutdownTask.htm" title="ShutdownTask Property " tocid="P_Grpc_Core_Server_ShutdownTask">ShutdownTask Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Server.htm">Server</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Server_Ports.htm">Ports</a></td><td><div class="summary">
+            Ports on which the server will listen once started. Register a port with this
+            server by adding its definition to this collection.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Server_Services.htm">Services</a></td><td><div class="summary">
+            Services that will be exported by the server once started. Register a service with this
+            server by adding its definition to this collection.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Server_ShutdownTask.htm">ShutdownTask</a></td><td><div class="summary">
+            To allow awaiting termination of the server.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Server.htm">Server Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerCallContext.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerCallContext.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4d5d01ccccb0b909844b898c8a20c034daaa3e36
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerCallContext.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerCallContext class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.ServerCallContext" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_ServerCallContext" /><meta name="guid" content="Properties_T_Grpc_Core_ServerCallContext" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_CancellationToken.htm" title="CancellationToken Property " tocid="P_Grpc_Core_ServerCallContext_CancellationToken">CancellationToken Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Deadline.htm" title="Deadline Property " tocid="P_Grpc_Core_ServerCallContext_Deadline">Deadline Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerCallContext_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Method.htm" title="Method Property " tocid="P_Grpc_Core_ServerCallContext_Method">Method Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Peer.htm" title="Peer Property " tocid="P_Grpc_Core_ServerCallContext_Peer">Peer Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm" title="RequestHeaders Property " tocid="P_Grpc_Core_ServerCallContext_RequestHeaders">RequestHeaders Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" title="ResponseTrailers Property " tocid="P_Grpc_Core_ServerCallContext_ResponseTrailers">ResponseTrailers Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_Status.htm" title="Status Property " tocid="P_Grpc_Core_ServerCallContext_Status">Status Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCallContext_WriteOptions.htm" title="WriteOptions Property " tocid="P_Grpc_Core_ServerCallContext_WriteOptions">WriteOptions Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_CancellationToken.htm">CancellationToken</a></td><td><div class="summary">Cancellation token signals when call is cancelled.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Deadline.htm">Deadline</a></td><td><div class="summary">Deadline for this RPC.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Host.htm">Host</a></td><td><div class="summary">Name of host called in this RPC.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Method.htm">Method</a></td><td><div class="summary">Name of method called in this RPC.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Peer.htm">Peer</a></td><td><div class="summary">Address of the remote endpoint in URI format.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm">RequestHeaders</a></td><td><div class="summary">Initial metadata sent by client.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm">ResponseTrailers</a></td><td><div class="summary">Trailers to send back to client after RPC finishes.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Status.htm">Status</a></td><td><div class="summary"> Status to send back to client after RPC finishes.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Allows setting write options for the following write.
+            For streaming response calls, this property is also exposed as on IServerStreamWriter for convenience.
+            Both properties are backed by the same underlying value.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCallContext.htm">ServerCallContext Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerCredentials.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..701aba7ee8a4f5e6b24252c19c4449d33182fb74
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerCredentials.htm
@@ -0,0 +1,6 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCredentials Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerCredentials class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.ServerCredentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_ServerCredentials" /><meta name="guid" content="Properties_T_Grpc_Core_ServerCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Properties" tocid="Properties_T_Grpc_Core_ServerCredentials">ServerCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerCredentials_Insecure.htm" title="Insecure Property " tocid="P_Grpc_Core_ServerCredentials_Insecure">Insecure Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCredentials Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_ServerCredentials_Insecure.htm">Insecure</a></td><td><div class="summary">
+            Returns instance of credential that provides no security and 
+            will result in creating an unsecure server port with no encryption whatsoever.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerCredentials.htm">ServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerPort.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerPort.htm
new file mode 100644
index 0000000000000000000000000000000000000000..454a82575e41be27594c4ca2d592503a1f41a872
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_ServerPort.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerPort class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.ServerPort" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_ServerPort" /><meta name="guid" content="Properties_T_Grpc_Core_ServerPort" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_BoundPort.htm" title="BoundPort Property " tocid="P_Grpc_Core_ServerPort_BoundPort">BoundPort Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Credentials.htm" title="Credentials Property " tocid="P_Grpc_Core_ServerPort_Credentials">Credentials Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Host.htm" title="Host Property " tocid="P_Grpc_Core_ServerPort_Host">Host Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_ServerPort_Port.htm" title="Port Property " tocid="P_Grpc_Core_ServerPort_Port">Port Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_ServerPort.htm">ServerPort</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_BoundPort.htm">BoundPort</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_Credentials.htm">Credentials</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_Host.htm">Host</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_Port.htm">Port</a></td><td /></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_ServerPort.htm">ServerPort Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_SslCredentials.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_SslCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b808cf05c44e4970fe9fc39f8b76fa8501d20096
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_SslCredentials.htm
@@ -0,0 +1,8 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslCredentials class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.SslCredentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_SslCredentials" /><meta name="guid" content="Properties_T_Grpc_Core_SslCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslCredentials.htm" title="SslCredentials Properties" tocid="Properties_T_Grpc_Core_SslCredentials">SslCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslCredentials_KeyCertificatePair.htm" title="KeyCertificatePair Property " tocid="P_Grpc_Core_SslCredentials_KeyCertificatePair">KeyCertificatePair Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslCredentials_RootCertificates.htm" title="RootCertificates Property " tocid="P_Grpc_Core_SslCredentials_RootCertificates">RootCertificates Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_SslCredentials.htm">SslCredentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslCredentials_KeyCertificatePair.htm">KeyCertificatePair</a></td><td><div class="summary">
+            Client side key and certificate pair.
+            If null, client will not use key and certificate pair.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslCredentials_RootCertificates.htm">RootCertificates</a></td><td><div class="summary">
+            PEM encoding of the server root certificates.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslCredentials.htm">SslCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_SslServerCredentials.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_SslServerCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f879ba0fd4476a9165c79330b638680941f82072
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_SslServerCredentials.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslServerCredentials class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.SslServerCredentials" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_SslServerCredentials" /><meta name="guid" content="Properties_T_Grpc_Core_SslServerCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Properties" tocid="Properties_T_Grpc_Core_SslServerCredentials">SslServerCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" title="ForceClientAuthentication Property " tocid="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication">ForceClientAuthentication Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" title="KeyCertificatePairs Property " tocid="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs">KeyCertificatePairs Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_SslServerCredentials_RootCertificates.htm" title="RootCertificates Property " tocid="P_Grpc_Core_SslServerCredentials_RootCertificates">RootCertificates Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm">ForceClientAuthentication</a></td><td><div class="summary">
+            If true, the authenticity of client check will be enforced.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm">KeyCertificatePairs</a></td><td><div class="summary">
+            Key-certificate pairs.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslServerCredentials_RootCertificates.htm">RootCertificates</a></td><td><div class="summary">
+            PEM encoded client root certificates.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_SslServerCredentials.htm">SslServerCredentials Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Status.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Status.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cb8c929e81399db7403976558d5f789172148365
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_Status.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Status structure, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.Status" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_Status" /><meta name="guid" content="Properties_T_Grpc_Core_Status" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Status.htm" title="Status Properties" tocid="Properties_T_Grpc_Core_Status">Status Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Status_Detail.htm" title="Detail Property " tocid="P_Grpc_Core_Status_Detail">Detail Property </a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_Status_StatusCode.htm" title="StatusCode Property " tocid="P_Grpc_Core_Status_StatusCode">StatusCode Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_Status.htm">Status</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Status_Detail.htm">Detail</a></td><td><div class="summary">
+            Gets the detail.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Status_StatusCode.htm">StatusCode</a></td><td><div class="summary">
+            Gets the gRPC status code. OK indicates success, all other values indicate an error.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_Status.htm">Status Structure</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/Properties_T_Grpc_Core_WriteOptions.htm b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b6e2b08ab04c20a9e467f6f8e804e01e47b1ef84
--- /dev/null
+++ b/doc/ref/csharp/html/html/Properties_T_Grpc_Core_WriteOptions.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteOptions Properties</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions class, properties" /><meta name="Microsoft.Help.Id" content="Properties.T:Grpc.Core.WriteOptions" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="Properties_T_Grpc_Core_WriteOptions" /><meta name="guid" content="Properties_T_Grpc_Core_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Properties" tocid="Properties_T_Grpc_Core_WriteOptions">WriteOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="P_Grpc_Core_WriteOptions_Flags.htm" title="Flags Property " tocid="P_Grpc_Core_WriteOptions_Flags">Flags Property </a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteOptions Properties</td></tr></table><span class="introStyle"></span><p>The <a href="T_Grpc_Core_WriteOptions.htm">WriteOptions</a> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_WriteOptions_Flags.htm">Flags</a></td><td><div class="summary">
+            Gets the write flags.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID1RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="T_Grpc_Core_WriteOptions.htm">WriteOptions Class</a></div><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/R_Project_Documentation.htm b/doc/ref/csharp/html/html/R_Project_Documentation.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1c2487cd40dc513bf23ac2e41f0fc797430a5b28
--- /dev/null
+++ b/doc/ref/csharp/html/html/R_Project_Documentation.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Namespaces</title><meta name="Language" content="en-us" /><meta name="Microsoft.Help.Id" content="R:Project_Documentation" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="unknown" /><meta name="file" content="R_Project_Documentation" /><meta name="guid" content="R_Project_Documentation" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Auth.htm" title="Grpc.Auth" tocid="N_Grpc_Auth">Grpc.Auth</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Namespaces</td></tr></table><span class="introStyle"></span><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Namespaces</span></div><div id="ID0RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th>Namespace</th><th>Description</th></tr><tr><td><a href="N_Grpc_Auth.htm">Grpc.Auth</a></td><td><div class="summary">Provides OAuth2 based authentication for gRPC. <span class="code">Grpc.Auth</span> currently consists of a set of very lightweight wrappers and uses C# <a href="https://www.nuget.org/packages/Google.Apis.Auth/">Google.Apis.Auth</a> library.</div></td></tr><tr><td><a href="N_Grpc_Core.htm">Grpc.Core</a></td><td><div class="summary">Main namespace for gRPC C# functionality. Contains concepts representing both client side and server side gRPC logic.
+
+</div></td></tr><tr><td><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a></td><td><div class="summary">Provides functionality to redirect gRPC logs to application-specified destination.</div></td></tr><tr><td><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a></td><td><div class="summary">Various utilities for gRPC C#.</div></td></tr></table></div></div></div><div id="pageFooter" class="pageFooter"> </div></body><script type="text/javascript">
+<!--
+    var tocNav = document.getElementById("tocNav");
+    var anchor = tocNav.children[0].children[0];
+    Toggle(anchor);
+    tocNav.children[0].className += " current";
+-->
+</script>
+</html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Auth_AuthInterceptors.htm b/doc/ref/csharp/html/html/T_Grpc_Auth_AuthInterceptors.htm
new file mode 100644
index 0000000000000000000000000000000000000000..89a0923148e450120de75c5bf1ac01ff2c0f78ff
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Auth_AuthInterceptors.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AuthInterceptors Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AuthInterceptors class" /><meta name="System.Keywords" content="Grpc.Auth.AuthInterceptors class" /><meta name="System.Keywords" content="AuthInterceptors class, about AuthInterceptors class" /><meta name="Microsoft.Help.F1" content="Grpc.Auth.AuthInterceptors" /><meta name="Microsoft.Help.Id" content="T:Grpc.Auth.AuthInterceptors" /><meta name="Description" content="Factory methods to create authorization interceptors. Interceptors created can be registered with gRPC client classes (autogenerated client stubs that inherit from )." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Auth" /><meta name="file" content="T_Grpc_Auth_AuthInterceptors" /><meta name="guid" content="T_Grpc_Auth_AuthInterceptors" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Auth.htm" title="Grpc.Auth" tocid="N_Grpc_Auth">Grpc.Auth</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Class" tocid="T_Grpc_Auth_AuthInterceptors">AuthInterceptors Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Auth_AuthInterceptors.htm" title="AuthInterceptors Methods" tocid="Methods_T_Grpc_Auth_AuthInterceptors">AuthInterceptors Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AuthInterceptors Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Factory methods to create authorization interceptors. Interceptors created can be registered with gRPC client classes (autogenerated client stubs that
+            inherit from <a href="T_Grpc_Core_ClientBase.htm">ClientBase</a>).
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTCB2648_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCB2648_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Auth<span id="LSTCB2648_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCB2648_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AuthInterceptors</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Auth.htm">Grpc.Auth</a><br /><strong>Assembly:</strong> Grpc.Auth (in Grpc.Auth.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">AuthInterceptors</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">AuthInterceptors</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">AuthInterceptors</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">AuthInterceptors</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">AuthInterceptors</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm">FromAccessToken</a></td><td><div class="summary">
+            Creates OAuth2 interceptor that will use given access token as authorization.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Auth_AuthInterceptors_FromCredential.htm">FromCredential</a></td><td><div class="summary">
+            Creates interceptor that will obtain access token from any credential type that implements
+            <span class="code">ITokenAccess</span>. (e.g. <span class="code">GoogleCredential</span>).
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Auth.htm">Grpc.Auth Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_AsyncClientStreamingCall_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncClientStreamingCall_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ea662d9d73b01ab1d206629231de3f17d28c3ced
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncClientStreamingCall_2.htm
@@ -0,0 +1,33 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncClientStreamingCall(TRequest, TResponse) Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="Grpc.Core.AsyncClientStreamingCall%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="AsyncClientStreamingCall%3CTRequest%2C TResponse%3E class, about AsyncClientStreamingCall%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse) class" /><meta name="System.Keywords" content="Grpc.Core.AsyncClientStreamingCall(Of TRequest%2C TResponse) class" /><meta name="System.Keywords" content="AsyncClientStreamingCall(Of TRequest%2C TResponse) class, about AsyncClientStreamingCall(Of TRequest%2C TResponse) class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncClientStreamingCall`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.AsyncClientStreamingCall`2" /><meta name="Description" content="Return type for client streaming calls." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_AsyncClientStreamingCall_2" /><meta name="guid" content="T_Grpc_Core_AsyncClientStreamingCall_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncClientStreamingCall<span id="LST1E8FD936_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST1E8FD936_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Return type for client streaming calls.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST1E8FD936_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST1E8FD936_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AsyncClientStreamingCall<span id="LST1E8FD936_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST1E8FD936_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">AsyncClientStreamingCall</span>&lt;TRequest, TResponse&gt; : <span class="identifier">IDisposable</span>
+</pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">AsyncClientStreamingCall</span>(<span class="keyword">Of</span> TRequest, TResponse)
+	<span class="keyword">Implements</span> <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">AsyncClientStreamingCall</span> <span class="keyword">sealed</span> : <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">AsyncClientStreamingCall</span>&lt;'TRequest, 'TResponse&gt; =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IDisposable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for this call.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this call.</dd></dl></div><p>The <span class="selflink">AsyncClientStreamingCall<span id="LST1E8FD936_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST1E8FD936_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1E8FD936_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm">RequestStream</a></td><td><div class="summary">
+            Async stream to send streaming requests.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm">ResponseAsync</a></td><td><div class="summary">
+            Asynchronous call result.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm">GetAwaiter</a></td><td><div class="summary">
+            Allows awaiting this object directly.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f81978d67bf60de03a784aff7500b74834754fa3
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm
@@ -0,0 +1,31 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncDuplexStreamingCall(TRequest, TResponse) Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="Grpc.Core.AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E class, about AsyncDuplexStreamingCall%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse) class" /><meta name="System.Keywords" content="Grpc.Core.AsyncDuplexStreamingCall(Of TRequest%2C TResponse) class" /><meta name="System.Keywords" content="AsyncDuplexStreamingCall(Of TRequest%2C TResponse) class, about AsyncDuplexStreamingCall(Of TRequest%2C TResponse) class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncDuplexStreamingCall`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.AsyncDuplexStreamingCall`2" /><meta name="Description" content="Return type for bidirectional streaming calls." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_AsyncDuplexStreamingCall_2" /><meta name="guid" content="T_Grpc_Core_AsyncDuplexStreamingCall_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncDuplexStreamingCall<span id="LST9B06C801_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST9B06C801_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Return type for bidirectional streaming calls.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST9B06C801_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST9B06C801_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AsyncDuplexStreamingCall<span id="LST9B06C801_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9B06C801_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">AsyncDuplexStreamingCall</span>&lt;TRequest, TResponse&gt; : <span class="identifier">IDisposable</span>
+</pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">AsyncDuplexStreamingCall</span>(<span class="keyword">Of</span> TRequest, TResponse)
+	<span class="keyword">Implements</span> <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">AsyncDuplexStreamingCall</span> <span class="keyword">sealed</span> : <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">AsyncDuplexStreamingCall</span>&lt;'TRequest, 'TResponse&gt; =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IDisposable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for this call.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this call.</dd></dl></div><p>The <span class="selflink">AsyncDuplexStreamingCall<span id="LST9B06C801_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LST9B06C801_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9B06C801_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm">RequestStream</a></td><td><div class="summary">
+            Async stream to send streaming requests.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm">ResponseStream</a></td><td><div class="summary">
+            Async stream to read streaming responses.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and response stream has been fully read), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_AsyncServerStreamingCall_1.htm b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncServerStreamingCall_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..4b2407ca18e1210406f5b75af4e532e7f19b2220
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncServerStreamingCall_1.htm
@@ -0,0 +1,29 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncServerStreamingCall(TResponse) Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E class" /><meta name="System.Keywords" content="Grpc.Core.AsyncServerStreamingCall%3CTResponse%3E class" /><meta name="System.Keywords" content="AsyncServerStreamingCall%3CTResponse%3E class, about AsyncServerStreamingCall%3CTResponse%3E class" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse) class" /><meta name="System.Keywords" content="Grpc.Core.AsyncServerStreamingCall(Of TResponse) class" /><meta name="System.Keywords" content="AsyncServerStreamingCall(Of TResponse) class, about AsyncServerStreamingCall(Of TResponse) class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncServerStreamingCall`1" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.AsyncServerStreamingCall`1" /><meta name="Description" content="Return type for server streaming calls." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_AsyncServerStreamingCall_1" /><meta name="guid" content="T_Grpc_Core_AsyncServerStreamingCall_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncServerStreamingCall<span id="LSTC423FE87_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LSTC423FE87_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Return type for server streaming calls.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTC423FE87_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTC423FE87_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AsyncServerStreamingCall<span id="LSTC423FE87_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTC423FE87_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">AsyncServerStreamingCall</span>&lt;TResponse&gt; : <span class="identifier">IDisposable</span>
+</pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">AsyncServerStreamingCall</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Implements</span> <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">AsyncServerStreamingCall</span> <span class="keyword">sealed</span> : <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">AsyncServerStreamingCall</span>&lt;'TResponse&gt; =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IDisposable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this call.</dd></dl></div><p>The <span class="selflink">AsyncServerStreamingCall<span id="LSTC423FE87_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LSTC423FE87_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC423FE87_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm">ResponseStream</a></td><td><div class="summary">
+            Async stream to read streaming responses.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (response stream has been fully read), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_AsyncUnaryCall_1.htm b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncUnaryCall_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..e370a9e0375c135f1010674eac8bce08cd342694
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_AsyncUnaryCall_1.htm
@@ -0,0 +1,31 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncUnaryCall(TResponse) Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E class" /><meta name="System.Keywords" content="Grpc.Core.AsyncUnaryCall%3CTResponse%3E class" /><meta name="System.Keywords" content="AsyncUnaryCall%3CTResponse%3E class, about AsyncUnaryCall%3CTResponse%3E class" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse) class" /><meta name="System.Keywords" content="Grpc.Core.AsyncUnaryCall(Of TResponse) class" /><meta name="System.Keywords" content="AsyncUnaryCall(Of TResponse) class, about AsyncUnaryCall(Of TResponse) class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.AsyncUnaryCall`1" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.AsyncUnaryCall`1" /><meta name="Description" content="Return type for single request - single response call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_AsyncUnaryCall_1" /><meta name="guid" content="T_Grpc_Core_AsyncUnaryCall_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Properties" tocid="Properties_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Methods" tocid="Methods_T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncUnaryCall<span id="LST2ECA825B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TResponse</span><span id="LST2ECA825B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Return type for single request - single response call.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST2ECA825B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST2ECA825B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AsyncUnaryCall<span id="LST2ECA825B_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST2ECA825B_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">AsyncUnaryCall</span>&lt;TResponse&gt; : <span class="identifier">IDisposable</span>
+</pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">AsyncUnaryCall</span>(<span class="keyword">Of</span> TResponse)
+	<span class="keyword">Implements</span> <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">AsyncUnaryCall</span> <span class="keyword">sealed</span> : <span class="identifier">IDisposable</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">AsyncUnaryCall</span>&lt;'TResponse&gt; =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IDisposable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this call.</dd></dl></div><p>The <span class="selflink">AsyncUnaryCall<span id="LST2ECA825B_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TResponse<span id="LST2ECA825B_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2ECA825B_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm">ResponseAsync</a></td><td><div class="summary">
+            Asynchronous call result.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm">ResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronous access to response headers.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm">Dispose</a></td><td><div class="summary">
+            Provides means to cleanup after the call.
+            If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
+            Otherwise, requests cancellation of the call which should terminate all pending async operations associated with the call.
+            As a result, all resources being used by the call should be released eventually.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm">GetAwaiter</a></td><td><div class="summary">
+            Allows awaiting this object directly.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm">GetStatus</a></td><td><div class="summary">
+            Gets the call status if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm">GetTrailers</a></td><td><div class="summary">
+            Gets the call trailing metadata if the call has already finished.
+            Throws InvalidOperationException otherwise.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_CallInvocationDetails_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_CallInvocationDetails_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..bc7ecf9ed05ae38e0ea5ddf06192419e5a0d12b7
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_CallInvocationDetails_2.htm
@@ -0,0 +1,33 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallInvocationDetails(TRequest, TResponse) Structure</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E structure" /><meta name="System.Keywords" content="Grpc.Core.CallInvocationDetails%3CTRequest%2C TResponse%3E structure" /><meta name="System.Keywords" content="CallInvocationDetails%3CTRequest%2C TResponse%3E structure, about CallInvocationDetails%3CTRequest%2C TResponse%3E structure" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse) structure" /><meta name="System.Keywords" content="Grpc.Core.CallInvocationDetails(Of TRequest%2C TResponse) structure" /><meta name="System.Keywords" content="CallInvocationDetails(Of TRequest%2C TResponse) structure, about CallInvocationDetails(Of TRequest%2C TResponse) structure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallInvocationDetails`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.CallInvocationDetails`2" /><meta name="Description" content="Details about a client-side call to be invoked." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_CallInvocationDetails_2" /><meta name="guid" content="T_Grpc_Core_CallInvocationDetails_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" title="CallInvocationDetails(TRequest, TResponse) Constructor " tocid="Overload_Grpc_Core_CallInvocationDetails_2__ctor">CallInvocationDetails(TRequest, TResponse) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallInvocationDetails<span id="LSTC2463791_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTC2463791_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Structure</td></tr></table><span class="introStyle"></span><div class="summary">
+            Details about a client-side call to be invoked.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">struct</span> <span class="identifier">CallInvocationDetails</span>&lt;TRequest, TResponse&gt;
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Structure</span> <span class="identifier">CallInvocationDetails</span>(<span class="keyword">Of</span> TRequest, TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">public</span> <span class="keyword">value class</span> <span class="identifier">CallInvocationDetails</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">CallInvocationDetails</span>&lt;'TRequest, 'TResponse&gt; =  <span class="keyword">struct</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for the call.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for the call.</dd></dl></div><p>The <span class="selflink">CallInvocationDetails<span id="LSTC2463791_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2__ctor.htm">CallInvocationDetails<span id="LSTC2463791_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script>(Channel, Method<span id="LSTC2463791_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTC2463791_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, CallOptions)</a></td><td><div class="summary">
+            Initializes a new instance of the <span class="selflink">CallInvocationDetails<span id="LSTC2463791_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> struct.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm">CallInvocationDetails<span id="LSTC2463791_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_10?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_11?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script>(Channel, Method<span id="LSTC2463791_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_12?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LSTC2463791_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_13?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, String, CallOptions)</a></td><td><div class="summary">
+            Initializes a new instance of the <span class="selflink">CallInvocationDetails<span id="LSTC2463791_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_14?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_15?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> struct.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm">CallInvocationDetails<span id="LSTC2463791_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_16?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_17?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script>(Channel, String, String, Marshaller<span id="LSTC2463791_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_18?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest<span id="LSTC2463791_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_19?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Marshaller<span id="LSTC2463791_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_20?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TResponse<span id="LSTC2463791_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_21?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, CallOptions)</a></td><td><div class="summary">
+            Initializes a new instance of the <span class="selflink">CallInvocationDetails<span id="LSTC2463791_22"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_22?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_23"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_23?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> struct.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Channel.htm">Channel</a></td><td><div class="summary">
+            Get channel associated with this call.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Host.htm">Host</a></td><td><div class="summary">
+            Get name of host.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Method.htm">Method</a></td><td><div class="summary">
+            Gets name of method to be called.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_Options.htm">Options</a></td><td><div class="summary">
+            Gets the call options.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm">RequestMarshaller</a></td><td><div class="summary">
+            Gets marshaller used to serialize requests.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm">ResponseMarshaller</a></td><td><div class="summary">
+            Gets marshaller used to deserialized responses.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ToString</a></td><td><div class="summary">Returns the fully qualified type name of this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm">WithOptions</a></td><td><div class="summary">
+            Returns new instance of <span class="selflink">CallInvocationDetails<span id="LSTC2463791_24"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_24?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTC2463791_25"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTC2463791_25?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> with
+            <span class="code">Options</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_CallOptions.htm b/doc/ref/csharp/html/html/T_Grpc_Core_CallOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..3829d0ddab4e1e86fa67daea8f19aa5deaf0a40f
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_CallOptions.htm
@@ -0,0 +1,31 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CallOptions Structure</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CallOptions structure" /><meta name="System.Keywords" content="Grpc.Core.CallOptions structure" /><meta name="System.Keywords" content="CallOptions structure, about CallOptions structure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CallOptions" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.CallOptions" /><meta name="Description" content="Options for calls made by client." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_CallOptions" /><meta name="guid" content="T_Grpc_Core_CallOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_CallOptions__ctor.htm" title="CallOptions Constructor " tocid="M_Grpc_Core_CallOptions__ctor">CallOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_CallOptions.htm" title="CallOptions Properties" tocid="Properties_T_Grpc_Core_CallOptions">CallOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_CallOptions.htm" title="CallOptions Methods" tocid="Methods_T_Grpc_Core_CallOptions">CallOptions Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CallOptions Structure</td></tr></table><span class="introStyle"></span><div class="summary">
+            Options for calls made by client.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">struct</span> <span class="identifier">CallOptions</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Structure</span> <span class="identifier">CallOptions</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">value class</span> <span class="identifier">CallOptions</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">CallOptions</span> =  <span class="keyword">struct</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><p>The <span class="selflink">CallOptions</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallOptions__ctor.htm">CallOptions</a></td><td><div class="summary">
+            Creates a new instance of <span class="code">CallOptions</span> struct.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_CancellationToken.htm">CancellationToken</a></td><td><div class="summary">
+            Token that can be used for cancelling the call.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_Deadline.htm">Deadline</a></td><td><div class="summary">
+            Call deadline.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_Headers.htm">Headers</a></td><td><div class="summary">
+            Headers to send at the beginning of the call.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_PropagationToken.htm">PropagationToken</a></td><td><div class="summary">
+            Token for propagating parent call context.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_CallOptions_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for this call.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ToString</a></td><td><div class="summary">Returns the fully qualified type name of this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallOptions_WithCancellationToken.htm">WithCancellationToken</a></td><td><div class="summary">
+            Returns new instance of <span class="selflink">CallOptions</span> with
+            <span class="code">CancellationToken</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallOptions_WithDeadline.htm">WithDeadline</a></td><td><div class="summary">
+            Returns new instance of <span class="selflink">CallOptions</span> with
+            <span class="code">Deadline</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_CallOptions_WithHeaders.htm">WithHeaders</a></td><td><div class="summary">
+            Returns new instance of <span class="selflink">CallOptions</span> with
+            <span class="code">Headers</span> set to the value provided. Values of all other fields are preserved.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Calls.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Calls.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ba5465dbd06f002961501f5f451278c740787214
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Calls.htm
@@ -0,0 +1,24 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Calls Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Calls class" /><meta name="System.Keywords" content="Grpc.Core.Calls class" /><meta name="System.Keywords" content="Calls class, about Calls class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Calls" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Calls" /><meta name="Description" content="Helper methods for generated clients to make RPC calls. Most users will use this class only indirectly and will be making calls using client object generated from protocol buffer definition files." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Calls" /><meta name="guid" content="T_Grpc_Core_Calls" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Calls.htm" title="Calls Methods" tocid="Methods_T_Grpc_Core_Calls">Calls Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Calls Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Helper methods for generated clients to make RPC calls.
+            Most users will use this class only indirectly and will be 
+            making calls using client object generated from protocol
+            buffer definition files.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST92E3202A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST92E3202A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Calls</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">Calls</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">Calls</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Calls</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Calls</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Calls</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm">AsyncClientStreamingCall<span id="LST92E3202A_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST92E3202A_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a client streaming call asynchronously.
+            In client streaming scenario, client sends a stream of requests and server responds with a single response.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm">AsyncDuplexStreamingCall<span id="LST92E3202A_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST92E3202A_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a duplex streaming call asynchronously.
+            In duplex streaming scenario, client sends a stream of requests and server responds with a stream of responses.
+            The response stream is completely independent and both side can be sending messages at the same time.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm">AsyncServerStreamingCall<span id="LST92E3202A_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST92E3202A_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a server streaming call asynchronously.
+            In server streaming scenario, client sends on request and server responds with a stream of responses.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_AsyncUnaryCall__2.htm">AsyncUnaryCall<span id="LST92E3202A_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST92E3202A_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a simple remote call asynchronously.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Calls_BlockingUnaryCall__2.htm">BlockingUnaryCall<span id="LST92E3202A_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_10?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST92E3202A_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92E3202A_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Invokes a simple remote call in a blocking fashion.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Channel.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Channel.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0d4fe96397beac879353e45eca2f6d3783bc74dd
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Channel.htm
@@ -0,0 +1,31 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Channel Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Channel class" /><meta name="System.Keywords" content="Grpc.Core.Channel class" /><meta name="System.Keywords" content="Channel class, about Channel class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Channel" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Channel" /><meta name="Description" content="Represents a gRPC channel. Channels are an abstraction of long-lived connections to remote servers. More client objects can reuse the same channel." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Channel" /><meta name="guid" content="T_Grpc_Core_Channel" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Channel__ctor.htm" title="Channel Constructor " tocid="Overload_Grpc_Core_Channel__ctor">Channel Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Channel.htm" title="Channel Properties" tocid="Properties_T_Grpc_Core_Channel">Channel Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Channel.htm" title="Channel Methods" tocid="Methods_T_Grpc_Core_Channel">Channel Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Channel Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Represents a gRPC channel. Channels are an abstraction of long-lived connections to remote servers.
+            More client objects can reuse the same channel. Creating a channel is an expensive operation compared to invoking
+            a remote call so in general you should reuse a single channel for as many calls as possible.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTFA44D63C_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFA44D63C_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTFA44D63C_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFA44D63C_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Channel</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">Channel</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">Channel</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Channel</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">Channel</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Channel</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel__ctor.htm">Channel(String, Credentials, IEnumerable<span id="LSTFA44D63C_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFA44D63C_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>ChannelOption<span id="LSTFA44D63C_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFA44D63C_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Creates a channel that connects to a specific host.
+            Port will default to 80 for an unsecure channel and to 443 for a secure channel.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel__ctor_1.htm">Channel(String, Int32, Credentials, IEnumerable<span id="LSTFA44D63C_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFA44D63C_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>ChannelOption<span id="LSTFA44D63C_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFA44D63C_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Creates a channel that connects to a specific host and port.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Channel_ResolvedTarget.htm">ResolvedTarget</a></td><td><div class="summary">Resolved address of the remote endpoint in URI format.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Channel_State.htm">State</a></td><td><div class="summary">
+            Gets current connectivity state of this channel.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Channel_Target.htm">Target</a></td><td><div class="summary">The original target used to create the channel.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel_ConnectAsync.htm">ConnectAsync</a></td><td><div class="summary">
+            Allows explicitly requesting channel to connect without starting an RPC.
+            Returned task completes once state Ready was seen. If the deadline is reached,
+            or channel enters the FatalFailure state, the task is cancelled.
+            There is no need to call this explicitly unless your use case requires that.
+            Starting an RPC on a new channel will request connection implicitly.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel_ShutdownAsync.htm">ShutdownAsync</a></td><td><div class="summary">
+            Waits until there are no more active calls for this channel and then cleans up
+            resources used by this channel.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Channel_WaitForStateChangedAsync.htm">WaitForStateChangedAsync</a></td><td><div class="summary">
+            Returned tasks completes once channel state has become different from 
+            given lastObservedState. 
+            If deadline is reached or and error occurs, returned task is cancelled.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOption.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOption.htm
new file mode 100644
index 0000000000000000000000000000000000000000..eddd74e934821ed19dcb10077ca6999747738582
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOption.htm
@@ -0,0 +1,23 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelOption class" /><meta name="System.Keywords" content="Grpc.Core.ChannelOption class" /><meta name="System.Keywords" content="ChannelOption class, about ChannelOption class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ChannelOption" /><meta name="Description" content="Channel option specified when creating a channel. Corresponds to grpc_channel_args from grpc/grpc.h." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ChannelOption" /><meta name="guid" content="T_Grpc_Core_ChannelOption" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_ChannelOption__ctor.htm" title="ChannelOption Constructor " tocid="Overload_Grpc_Core_ChannelOption__ctor">ChannelOption Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Properties" tocid="Properties_T_Grpc_Core_ChannelOption">ChannelOption Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ChannelOption.htm" title="ChannelOption Methods" tocid="Methods_T_Grpc_Core_ChannelOption">ChannelOption Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Channel option specified when creating a channel.
+            Corresponds to grpc_channel_args from grpc/grpc.h.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST94C316D3_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST94C316D3_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST94C316D3_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST94C316D3_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ChannelOption</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">ChannelOption</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">ChannelOption</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ChannelOption</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">ChannelOption</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ChannelOption</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ChannelOption__ctor.htm">ChannelOption(String, Int32)</a></td><td><div class="summary">
+            Creates a channel option with an integer value.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ChannelOption__ctor_1.htm">ChannelOption(String, String)</a></td><td><div class="summary">
+            Creates a channel option with a string value.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_IntValue.htm">IntValue</a></td><td><div class="summary">
+            Gets the integer value the <span class="code">ChannelOption</span>.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_Name.htm">Name</a></td><td><div class="summary">
+            Gets the name of the <span class="code">ChannelOption</span>.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_StringValue.htm">StringValue</a></td><td><div class="summary">
+            Gets the string value the <span class="code">ChannelOption</span>.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ChannelOption_Type.htm">Type</a></td><td><div class="summary">
+            Gets the type of the <span class="code">ChannelOption</span>.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOption_OptionType.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOption_OptionType.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0953710b291b30bc2f5833e88c0cacfecfed4295
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOption_OptionType.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOption.OptionType Enumeration</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelOption.OptionType enumeration" /><meta name="System.Keywords" content="Grpc.Core.ChannelOption.OptionType enumeration" /><meta name="System.Keywords" content="Integer enumeration member" /><meta name="System.Keywords" content="String enumeration member" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.OptionType" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.OptionType.Integer" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOption.OptionType.String" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ChannelOption.OptionType" /><meta name="Description" content="Type of ChannelOption." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ChannelOption_OptionType" /><meta name="guid" content="T_Grpc_Core_ChannelOption_OptionType" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOption<span id="LST47F86D4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST47F86D4_0?cpp=::|nu=.");</script>OptionType Enumeration</td></tr></table><span class="introStyle"></span><div class="summary">
+            Type of <span class="code">ChannelOption</span>.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum</span> <span class="identifier">OptionType</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Enumeration</span> <span class="identifier">OptionType</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum class</span> <span class="identifier">OptionType</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">OptionType</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div id="enumerationSection"><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Members</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+									 
+								</th><th>Member name</th><th>Value</th><th>Description</th></tr><tr><td /><td target="F:Grpc.Core.ChannelOption.OptionType.Integer"><span class="selflink">Integer</span></td><td>0</td><td>
+            Channel option with integer value.
+            </td></tr><tr><td /><td target="F:Grpc.Core.ChannelOption.OptionType.String"><span class="selflink">String</span></td><td>1</td><td>
+            Channel option with string value.
+            </td></tr></table></div></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOptions.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..bd1f0db02c62492cf8f5fda317f87ee4d7a317f8
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelOptions.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelOptions Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelOptions class" /><meta name="System.Keywords" content="Grpc.Core.ChannelOptions class" /><meta name="System.Keywords" content="ChannelOptions class, about ChannelOptions class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelOptions" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ChannelOptions" /><meta name="Description" content="Defines names of supported channel options." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ChannelOptions" /><meta name="guid" content="T_Grpc_Core_ChannelOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Fields" tocid="Fields_T_Grpc_Core_ChannelOptions">ChannelOptions Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelOptions Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Defines names of supported channel options.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST63118B5E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST63118B5E_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST63118B5E_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST63118B5E_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ChannelOptions</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">ChannelOptions</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">ChannelOptions</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ChannelOptions</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">ChannelOptions</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ChannelOptions</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_Census.htm">Census</a></td><td><div class="summary">Enable census for tracing and stats collection</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_DefaultAuthority.htm">DefaultAuthority</a></td><td><div class="summary">Default authority for calls.</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm">Http2InitialSequenceNumber</a></td><td><div class="summary">Initial sequence number for http2 transports</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm">MaxConcurrentStreams</a></td><td><div class="summary">Maximum number of concurrent incoming streams to allow on a http2 connection</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_MaxMessageLength.htm">MaxMessageLength</a></td><td><div class="summary">Maximum message length that the channel can receive</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm">PrimaryUserAgentString</a></td><td><div class="summary">Primary user agent: goes at the start of the user-agent metadata</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm">SecondaryUserAgentString</a></td><td><div class="summary">Secondary user agent: goes at the end of the user-agent metadata</div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm">SslTargetNameOverride</a></td><td><div class="summary">Override SSL target check. Only to be used for testing.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ChannelState.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelState.htm
new file mode 100644
index 0000000000000000000000000000000000000000..da05bfba6429d49ae41b007ea3d450ad84475473
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ChannelState.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ChannelState Enumeration</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ChannelState enumeration" /><meta name="System.Keywords" content="Grpc.Core.ChannelState enumeration" /><meta name="System.Keywords" content="Idle enumeration member" /><meta name="System.Keywords" content="Connecting enumeration member" /><meta name="System.Keywords" content="Ready enumeration member" /><meta name="System.Keywords" content="TransientFailure enumeration member" /><meta name="System.Keywords" content="FatalFailure enumeration member" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelState" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelState.Idle" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelState.Connecting" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelState.Ready" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelState.TransientFailure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ChannelState.FatalFailure" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ChannelState" /><meta name="Description" content="Connectivity state of a channel. Based on grpc_connectivity_state from grpc/grpc.h" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ChannelState" /><meta name="guid" content="T_Grpc_Core_ChannelState" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ChannelState Enumeration</td></tr></table><span class="introStyle"></span><div class="summary">
+            Connectivity state of a channel.
+            Based on grpc_connectivity_state from grpc/grpc.h
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum</span> <span class="identifier">ChannelState</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Enumeration</span> <span class="identifier">ChannelState</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum class</span> <span class="identifier">ChannelState</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ChannelState</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div id="enumerationSection"><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Members</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+									 
+								</th><th>Member name</th><th>Value</th><th>Description</th></tr><tr><td /><td target="F:Grpc.Core.ChannelState.Idle"><span class="selflink">Idle</span></td><td>0</td><td>
+            Channel is idle
+            </td></tr><tr><td /><td target="F:Grpc.Core.ChannelState.Connecting"><span class="selflink">Connecting</span></td><td>1</td><td>
+            Channel is connecting
+            </td></tr><tr><td /><td target="F:Grpc.Core.ChannelState.Ready"><span class="selflink">Ready</span></td><td>2</td><td>
+            Channel is ready for work
+            </td></tr><tr><td /><td target="F:Grpc.Core.ChannelState.TransientFailure"><span class="selflink">TransientFailure</span></td><td>3</td><td>
+            Channel has seen a failure but expects to recover
+            </td></tr><tr><td /><td target="F:Grpc.Core.ChannelState.FatalFailure"><span class="selflink">FatalFailure</span></td><td>4</td><td>
+            Channel has seen a failure that it cannot recover from
+            </td></tr></table></div></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ClientBase.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ClientBase.htm
new file mode 100644
index 0000000000000000000000000000000000000000..98b64764a3490622f0d2a1fdf8c118f46012ba22
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ClientBase.htm
@@ -0,0 +1,24 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientBase Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ClientBase class" /><meta name="System.Keywords" content="Grpc.Core.ClientBase class" /><meta name="System.Keywords" content="ClientBase class, about ClientBase class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientBase" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ClientBase" /><meta name="Description" content="Base class for client-side stubs." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ClientBase" /><meta name="guid" content="T_Grpc_Core_ClientBase" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ClientBase__ctor.htm" title="ClientBase Constructor " tocid="M_Grpc_Core_ClientBase__ctor">ClientBase Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ClientBase.htm" title="ClientBase Properties" tocid="Properties_T_Grpc_Core_ClientBase">ClientBase Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ClientBase.htm" title="ClientBase Methods" tocid="Methods_T_Grpc_Core_ClientBase">ClientBase Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientBase Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Base class for client-side stubs.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST325B90DF_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST325B90DF_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST325B90DF_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST325B90DF_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ClientBase</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class</span> <span class="identifier">ClientBase</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">MustInherit</span> <span class="keyword">Class</span> <span class="identifier">ClientBase</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ClientBase</span> <span class="keyword">abstract</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">ClientBase</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ClientBase</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ClientBase__ctor.htm">ClientBase</a></td><td><div class="summary">
+            Initializes a new instance of <span class="code">ClientBase</span> class.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ClientBase_Channel.htm">Channel</a></td><td><div class="summary">
+            Channel associated with this client.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ClientBase_HeaderInterceptor.htm">HeaderInterceptor</a></td><td><div class="summary">
+            Can be used to register a custom header (request metadata) interceptor.
+            The interceptor is invoked each time a new call on this client is started.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ClientBase_Host.htm">Host</a></td><td><div class="summary">
+            gRPC supports multiple "hosts" being served by a single server. 
+            This property can be used to set the target host explicitly.
+            By default, this will be set to <span class="code">null</span> with the meaning
+            "use default host".
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="protected;declared;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_Grpc_Core_ClientBase_CreateCall__2.htm">CreateCall<span id="LST325B90DF_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST325B90DF_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST325B90DF_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST325B90DF_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Creates a new call to given method.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ClientStreamingServerMethod_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ClientStreamingServerMethod_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d2073102cfbeb89e52ed63bf593affb3be3e52f0
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ClientStreamingServerMethod_2.htm
@@ -0,0 +1,21 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ClientStreamingServerMethod(TRequest, TResponse) Delegate</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ClientStreamingServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="Grpc.Core.ClientStreamingServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="ClientStreamingServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="System.Keywords" content="Grpc.Core.ClientStreamingServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ClientStreamingServerMethod`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ClientStreamingServerMethod`2" /><meta name="Description" content="Server-side handler for client streaming call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ClientStreamingServerMethod_2" /><meta name="guid" content="T_Grpc_Core_ClientStreamingServerMethod_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ClientStreamingServerMethod<span id="LST97FDF94E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST97FDF94E_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Delegate</td></tr></table><span class="introStyle"></span><div class="summary">
+            Server-side handler for client streaming call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span>&lt;TResponse&gt; <span class="identifier">ClientStreamingServerMethod</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">IAsyncStreamReader</span>&lt;TRequest&gt; <span class="parameter">requestStream</span>,
+	<span class="identifier">ServerCallContext</span> <span class="parameter">context</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Delegate</span> <span class="keyword">Function</span> <span class="identifier">ClientStreamingServerMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">requestStream</span> <span class="keyword">As</span> <span class="identifier">IAsyncStreamReader</span>(<span class="keyword">Of</span> TRequest),
+	<span class="parameter">context</span> <span class="keyword">As</span> <span class="identifier">ServerCallContext</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span>&lt;TResponse&gt;^ <span class="identifier">ClientStreamingServerMethod</span>(
+	<span class="identifier">IAsyncStreamReader</span>&lt;TRequest&gt;^ <span class="parameter">requestStream</span>, 
+	<span class="identifier">ServerCallContext</span>^ <span class="parameter">context</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ClientStreamingServerMethod</span> = 
+    <span class="keyword">delegate</span> <span class="keyword">of</span> 
+        <span class="parameter">requestStream</span> : <span class="identifier">IAsyncStreamReader</span>&lt;'TRequest&gt; * 
+        <span class="parameter">context</span> : <span class="identifier">ServerCallContext</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span>&lt;'TResponse&gt;</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">requestStream</span></dt><dd>Type: <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">Grpc.Core<span id="LST97FDF94E_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IAsyncStreamReader</a><span id="LST97FDF94E_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span><span id="LST97FDF94E_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /></dd><dt><span class="parameter">context</span></dt><dd>Type: <a href="T_Grpc_Core_ServerCallContext.htm">Grpc.Core<span id="LST97FDF94E_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCallContext</a><br /></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for this method.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this method.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LST97FDF94E_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST97FDF94E_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST97FDF94E_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_CompressionLevel.htm b/doc/ref/csharp/html/html/T_Grpc_Core_CompressionLevel.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f70286751c47c707189d2f4d7d1b27fc349a12ce
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_CompressionLevel.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>CompressionLevel Enumeration</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="CompressionLevel enumeration" /><meta name="System.Keywords" content="Grpc.Core.CompressionLevel enumeration" /><meta name="System.Keywords" content="None enumeration member" /><meta name="System.Keywords" content="Low enumeration member" /><meta name="System.Keywords" content="Medium enumeration member" /><meta name="System.Keywords" content="High enumeration member" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CompressionLevel" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CompressionLevel.None" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CompressionLevel.Low" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CompressionLevel.Medium" /><meta name="Microsoft.Help.F1" content="Grpc.Core.CompressionLevel.High" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.CompressionLevel" /><meta name="Description" content="Compression level based on grpc_compression_level from grpc/compression.h" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_CompressionLevel" /><meta name="guid" content="T_Grpc_Core_CompressionLevel" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">CompressionLevel Enumeration</td></tr></table><span class="introStyle"></span><div class="summary">
+            Compression level based on grpc_compression_level from grpc/compression.h
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum</span> <span class="identifier">CompressionLevel</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Enumeration</span> <span class="identifier">CompressionLevel</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum class</span> <span class="identifier">CompressionLevel</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">CompressionLevel</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div id="enumerationSection"><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Members</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+									 
+								</th><th>Member name</th><th>Value</th><th>Description</th></tr><tr><td /><td target="F:Grpc.Core.CompressionLevel.None"><span class="selflink">None</span></td><td>0</td><td>
+            No compression.
+            </td></tr><tr><td /><td target="F:Grpc.Core.CompressionLevel.Low"><span class="selflink">Low</span></td><td>1</td><td>
+            Low compression.
+            </td></tr><tr><td /><td target="F:Grpc.Core.CompressionLevel.Medium"><span class="selflink">Medium</span></td><td>2</td><td>
+            Medium compression.
+            </td></tr><tr><td /><td target="F:Grpc.Core.CompressionLevel.High"><span class="selflink">High</span></td><td>3</td><td>
+            High compression.
+            </td></tr></table></div></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ContextPropagationOptions.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ContextPropagationOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..73d262063c6ae88eecd4fbfa241c8821f7fd6ef3
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ContextPropagationOptions.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationOptions Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ContextPropagationOptions class" /><meta name="System.Keywords" content="Grpc.Core.ContextPropagationOptions class" /><meta name="System.Keywords" content="ContextPropagationOptions class, about ContextPropagationOptions class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationOptions" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ContextPropagationOptions" /><meta name="Description" content="Options for ." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ContextPropagationOptions" /><meta name="guid" content="T_Grpc_Core_ContextPropagationOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ContextPropagationOptions__ctor.htm" title="ContextPropagationOptions Constructor " tocid="M_Grpc_Core_ContextPropagationOptions__ctor">ContextPropagationOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Properties" tocid="Properties_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Methods" tocid="Methods_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Fields" tocid="Fields_T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationOptions Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Options for <a href="T_Grpc_Core_ContextPropagationToken.htm">ContextPropagationToken</a>.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST261623D8_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST261623D8_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST261623D8_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST261623D8_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ContextPropagationOptions</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ContextPropagationOptions</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ContextPropagationOptions</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ContextPropagationOptions</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ContextPropagationOptions</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ContextPropagationOptions</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ContextPropagationOptions__ctor.htm">ContextPropagationOptions</a></td><td><div class="summary">
+            Creates new context propagation options.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm">IsPropagateCancellation</a></td><td><div class="summary"><span class="code">true</span> if parent call's cancellation token should be propagated to the child call.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm">IsPropagateDeadline</a></td><td><div class="summary"><span class="code">true</span> if parent call's deadline should be propagated to the child call.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID6RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ContextPropagationOptions_Default.htm">Default</a></td><td><div class="summary">
+            The context propagation options that will be used by default.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID7RB')" onkeypress="SectionExpandCollapse_CheckKey('ID7RB', event)" tabindex="0"><img id="ID7RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID7RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ContextPropagationToken.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ContextPropagationToken.htm
new file mode 100644
index 0000000000000000000000000000000000000000..64ee49df361f8e75a7e44343dfd284b0b7cf621e
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ContextPropagationToken.htm
@@ -0,0 +1,10 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ContextPropagationToken Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ContextPropagationToken class" /><meta name="System.Keywords" content="Grpc.Core.ContextPropagationToken class" /><meta name="System.Keywords" content="ContextPropagationToken class, about ContextPropagationToken class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ContextPropagationToken" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ContextPropagationToken" /><meta name="Description" content="Token for propagating context of server side handlers to child calls. In situations when a backend is making calls to another backend, it makes sense to propagate properties like deadline and cancellation token of the server call to the child call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ContextPropagationToken" /><meta name="guid" content="T_Grpc_Core_ContextPropagationToken" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Methods" tocid="Methods_T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ContextPropagationToken Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Token for propagating context of server side handlers to child calls.
+            In situations when a backend is making calls to another backend,
+            it makes sense to propagate properties like deadline and cancellation 
+            token of the server call to the child call.
+            The gRPC native layer provides some other contexts (like tracing context) that
+            are not accessible to explicitly C# layer, but this token still allows propagating them.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST3775DBD1_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3775DBD1_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST3775DBD1_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3775DBD1_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ContextPropagationToken</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ContextPropagationToken</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ContextPropagationToken</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ContextPropagationToken</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ContextPropagationToken</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ContextPropagationToken</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Credentials.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Credentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b3da8eea78a94bcf0b9f34eec5b7749f9a4d584f
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Credentials.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Credentials Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Credentials class" /><meta name="System.Keywords" content="Grpc.Core.Credentials class" /><meta name="System.Keywords" content="Credentials class, about Credentials class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Credentials" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Credentials" /><meta name="Description" content="Client-side credentials. Used for creation of a secure channel." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Credentials" /><meta name="guid" content="T_Grpc_Core_Credentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Credentials__ctor.htm" title="Credentials Constructor " tocid="M_Grpc_Core_Credentials__ctor">Credentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Credentials.htm" title="Credentials Properties" tocid="Properties_T_Grpc_Core_Credentials">Credentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Credentials.htm" title="Credentials Methods" tocid="Methods_T_Grpc_Core_Credentials">Credentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Credentials Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Client-side credentials. Used for creation of a secure channel.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST2220AA03_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2220AA03_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST2220AA03_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2220AA03_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Credentials</span><br />    <a href="T_Grpc_Core_SslCredentials.htm">Grpc.Core<span id="LST2220AA03_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST2220AA03_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SslCredentials</a><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class</span> <span class="identifier">Credentials</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">MustInherit</span> <span class="keyword">Class</span> <span class="identifier">Credentials</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Credentials</span> <span class="keyword">abstract</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Credentials</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Credentials</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="protected;declared;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_Grpc_Core_Credentials__ctor.htm">Credentials</a></td><td><div class="summary">Initializes a new instance of the <span class="selflink">Credentials</span> class</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_Credentials_Insecure.htm">Insecure</a></td><td><div class="summary">
+            Returns instance of credential that provides no security and 
+            will result in creating an unsecure channel with no encryption whatsoever.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c5783a7416f54c3a37a319e26054aff41411ded9
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm
@@ -0,0 +1,25 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>DuplexStreamingServerMethod(TRequest, TResponse) Delegate</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="DuplexStreamingServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="Grpc.Core.DuplexStreamingServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="DuplexStreamingServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="System.Keywords" content="Grpc.Core.DuplexStreamingServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="Microsoft.Help.F1" content="Grpc.Core.DuplexStreamingServerMethod`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.DuplexStreamingServerMethod`2" /><meta name="Description" content="Server-side handler for bidi streaming call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_DuplexStreamingServerMethod_2" /><meta name="guid" content="T_Grpc_Core_DuplexStreamingServerMethod_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">DuplexStreamingServerMethod<span id="LST23CCAC57_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST23CCAC57_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Delegate</td></tr></table><span class="introStyle"></span><div class="summary">
+            Server-side handler for bidi streaming call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span> <span class="identifier">DuplexStreamingServerMethod</span>&lt;TRequest, TResponse&gt;(
+	<span class="identifier">IAsyncStreamReader</span>&lt;TRequest&gt; <span class="parameter">requestStream</span>,
+	<span class="identifier">IServerStreamWriter</span>&lt;TResponse&gt; <span class="parameter">responseStream</span>,
+	<span class="identifier">ServerCallContext</span> <span class="parameter">context</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Delegate</span> <span class="keyword">Function</span> <span class="identifier">DuplexStreamingServerMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">requestStream</span> <span class="keyword">As</span> <span class="identifier">IAsyncStreamReader</span>(<span class="keyword">Of</span> TRequest),
+	<span class="parameter">responseStream</span> <span class="keyword">As</span> <span class="identifier">IServerStreamWriter</span>(<span class="keyword">Of</span> TResponse),
+	<span class="parameter">context</span> <span class="keyword">As</span> <span class="identifier">ServerCallContext</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span>^ <span class="identifier">DuplexStreamingServerMethod</span>(
+	<span class="identifier">IAsyncStreamReader</span>&lt;TRequest&gt;^ <span class="parameter">requestStream</span>, 
+	<span class="identifier">IServerStreamWriter</span>&lt;TResponse&gt;^ <span class="parameter">responseStream</span>, 
+	<span class="identifier">ServerCallContext</span>^ <span class="parameter">context</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">DuplexStreamingServerMethod</span> = 
+    <span class="keyword">delegate</span> <span class="keyword">of</span> 
+        <span class="parameter">requestStream</span> : <span class="identifier">IAsyncStreamReader</span>&lt;'TRequest&gt; * 
+        <span class="parameter">responseStream</span> : <span class="identifier">IServerStreamWriter</span>&lt;'TResponse&gt; * 
+        <span class="parameter">context</span> : <span class="identifier">ServerCallContext</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">requestStream</span></dt><dd>Type: <a href="T_Grpc_Core_IAsyncStreamReader_1.htm">Grpc.Core<span id="LST23CCAC57_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IAsyncStreamReader</a><span id="LST23CCAC57_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TRequest</span></span><span id="LST23CCAC57_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /></dd><dt><span class="parameter">responseStream</span></dt><dd>Type: <a href="T_Grpc_Core_IServerStreamWriter_1.htm">Grpc.Core<span id="LST23CCAC57_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IServerStreamWriter</a><span id="LST23CCAC57_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST23CCAC57_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /></dd><dt><span class="parameter">context</span></dt><dd>Type: <a href="T_Grpc_Core_ServerCallContext.htm">Grpc.Core<span id="LST23CCAC57_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST23CCAC57_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCallContext</a><br /></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for this method.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this method.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_GrpcEnvironment.htm b/doc/ref/csharp/html/html/T_Grpc_Core_GrpcEnvironment.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ac67b12fc6999434b3f71949c228596fe4bfdc02
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_GrpcEnvironment.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>GrpcEnvironment Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="GrpcEnvironment class" /><meta name="System.Keywords" content="Grpc.Core.GrpcEnvironment class" /><meta name="System.Keywords" content="GrpcEnvironment class, about GrpcEnvironment class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.GrpcEnvironment" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.GrpcEnvironment" /><meta name="Description" content="Encapsulates initialization and shutdown of gRPC library." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_GrpcEnvironment" /><meta name="guid" content="T_Grpc_Core_GrpcEnvironment" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Properties" tocid="Properties_T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Methods" tocid="Methods_T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">GrpcEnvironment Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Encapsulates initialization and shutdown of gRPC library.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST975C6702_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST975C6702_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST975C6702_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST975C6702_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>GrpcEnvironment</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">GrpcEnvironment</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">GrpcEnvironment</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">GrpcEnvironment</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">GrpcEnvironment</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">GrpcEnvironment</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_GrpcEnvironment_Logger.htm">Logger</a></td><td><div class="summary">
+            Gets application-wide logger used by gRPC.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_GrpcEnvironment_SetLogger.htm">SetLogger</a></td><td><div class="summary">
+            Sets the application-wide logger that should be used by gRPC.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_HeaderInterceptor.htm b/doc/ref/csharp/html/html/T_Grpc_Core_HeaderInterceptor.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d2bc5c96002e81d71f242c9f8cdce984e99f092e
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_HeaderInterceptor.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>HeaderInterceptor Delegate</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="HeaderInterceptor delegate" /><meta name="System.Keywords" content="Grpc.Core.HeaderInterceptor delegate" /><meta name="Microsoft.Help.F1" content="Grpc.Core.HeaderInterceptor" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.HeaderInterceptor" /><meta name="Description" content="Interceptor for call headers." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_HeaderInterceptor" /><meta name="guid" content="T_Grpc_Core_HeaderInterceptor" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">HeaderInterceptor Delegate</td></tr></table><span class="introStyle"></span><div class="summary">
+            Interceptor for call headers.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">delegate</span> <span class="keyword">void</span> <span class="identifier">HeaderInterceptor</span>(
+	<span class="identifier">IMethod</span> <span class="parameter">method</span>,
+	<span class="identifier">string</span> <span class="parameter">authUri</span>,
+	<span class="identifier">Metadata</span> <span class="parameter">metadata</span>
+)</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Delegate</span> <span class="keyword">Sub</span> <span class="identifier">HeaderInterceptor</span> ( 
+	<span class="parameter">method</span> <span class="keyword">As</span> <span class="identifier">IMethod</span>,
+	<span class="parameter">authUri</span> <span class="keyword">As</span> <span class="identifier">String</span>,
+	<span class="parameter">metadata</span> <span class="keyword">As</span> <span class="identifier">Metadata</span>
+)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">delegate</span> <span class="keyword">void</span> <span class="identifier">HeaderInterceptor</span>(
+	<span class="identifier">IMethod</span>^ <span class="parameter">method</span>, 
+	<span class="identifier">String</span>^ <span class="parameter">authUri</span>, 
+	<span class="identifier">Metadata</span>^ <span class="parameter">metadata</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">HeaderInterceptor</span> = 
+    <span class="keyword">delegate</span> <span class="keyword">of</span> 
+        <span class="parameter">method</span> : <span class="identifier">IMethod</span> * 
+        <span class="parameter">authUri</span> : <span class="identifier">string</span> * 
+        <span class="parameter">metadata</span> : <span class="identifier">Metadata</span> <span class="keyword">-&gt;</span> <span class="keyword">unit</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">method</span></dt><dd>Type: <a href="T_Grpc_Core_IMethod.htm">Grpc.Core<span id="LST5065428B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5065428B_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IMethod</a><br /></dd><dt><span class="parameter">authUri</span></dt><dd>Type: <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">System<span id="LST5065428B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5065428B_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>String</a><br /></dd><dt><span class="parameter">metadata</span></dt><dd>Type: <a href="T_Grpc_Core_Metadata.htm">Grpc.Core<span id="LST5065428B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST5065428B_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata</a><br /></dd></dl></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_IAsyncStreamReader_1.htm b/doc/ref/csharp/html/html/T_Grpc_Core_IAsyncStreamReader_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..07ebcd902e453b992cb93bc820f26eb4cfda175b
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_IAsyncStreamReader_1.htm
@@ -0,0 +1,22 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamReader(T) Interface</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IAsyncStreamReader%3CT%3E interface" /><meta name="System.Keywords" content="Grpc.Core.IAsyncStreamReader%3CT%3E interface" /><meta name="System.Keywords" content="IAsyncStreamReader%3CT%3E interface, about IAsyncStreamReader%3CT%3E interface" /><meta name="System.Keywords" content="IAsyncStreamReader(Of T) interface" /><meta name="System.Keywords" content="Grpc.Core.IAsyncStreamReader(Of T) interface" /><meta name="System.Keywords" content="IAsyncStreamReader(Of T) interface, about IAsyncStreamReader(Of T) interface" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IAsyncStreamReader`1" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.IAsyncStreamReader`1" /><meta name="Description" content="A stream of messages to be read." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_IAsyncStreamReader_1" /><meta name="guid" content="T_Grpc_Core_IAsyncStreamReader_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Properties" tocid="Properties_T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Methods" tocid="Methods_T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamReader<span id="LST18B58304_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST18B58304_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Interface</td></tr></table><span class="introStyle"></span><div class="summary">
+            A stream of messages to be read.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface</span> <span class="identifier">IAsyncStreamReader</span>&lt;T&gt; : <span class="identifier">IAsyncEnumerator</span>&lt;T&gt;, 
+	<span class="identifier">IDisposable</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Interface</span> <span class="identifier">IAsyncStreamReader</span>(<span class="keyword">Of</span> T)
+	<span class="keyword">Inherits</span> <span class="identifier">IAsyncEnumerator</span>(<span class="keyword">Of</span> T), <span class="identifier">IDisposable</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">public</span> <span class="keyword">interface class</span> <span class="identifier">IAsyncStreamReader</span> : <span class="identifier">IAsyncEnumerator</span>&lt;T&gt;, 
+	<span class="identifier">IDisposable</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">IAsyncStreamReader</span>&lt;'T&gt; =  
+    <span class="keyword">interface</span>
+        <span class="keyword">interface</span> <span class="identifier">IAsyncEnumerator</span>&lt;'T&gt;
+        <span class="keyword">interface</span> <span class="identifier">IDisposable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd>The message type.</dd></dl></div><p>The <span class="selflink">IAsyncStreamReader<span id="LST18B58304_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST18B58304_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><span class="nolink">Current</span></td><td> (Inherited from <span class="nolink">IAsyncEnumerator</span><span id="LST18B58304_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LST18B58304_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/es4s3w1d" target="_blank">Dispose</a></td><td><div class="summary">Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aax125c9" target="_blank">IDisposable</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><span class="nolink">MoveNext</span></td><td> (Inherited from <span class="nolink">IAsyncEnumerator</span><span id="LST18B58304_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">T</span></span><span id="LST18B58304_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Extension Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm">ForEachAsync<span id="LST18B58304_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST18B58304_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and executes an async action for each element.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm">ToListAsync<span id="LST18B58304_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_10?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST18B58304_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST18B58304_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and creates a list containing all the elements read.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_IAsyncStreamWriter_1.htm b/doc/ref/csharp/html/html/T_Grpc_Core_IAsyncStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c60aa5eae4544bca34502cd7601764cdbb9b91a9
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_IAsyncStreamWriter_1.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IAsyncStreamWriter(T) Interface</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IAsyncStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="Grpc.Core.IAsyncStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="IAsyncStreamWriter%3CT%3E interface, about IAsyncStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="IAsyncStreamWriter(Of T) interface" /><meta name="System.Keywords" content="Grpc.Core.IAsyncStreamWriter(Of T) interface" /><meta name="System.Keywords" content="IAsyncStreamWriter(Of T) interface, about IAsyncStreamWriter(Of T) interface" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IAsyncStreamWriter`1" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.IAsyncStreamWriter`1" /><meta name="Description" content="A writable stream of messages." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_IAsyncStreamWriter_1" /><meta name="guid" content="T_Grpc_Core_IAsyncStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IAsyncStreamWriter<span id="LST39EBAC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39EBAC_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST39EBAC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39EBAC_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Interface</td></tr></table><span class="introStyle"></span><div class="summary">
+            A writable stream of messages.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface</span> <span class="identifier">IAsyncStreamWriter</span>&lt;T&gt;
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Interface</span> <span class="identifier">IAsyncStreamWriter</span>(<span class="keyword">Of</span> T)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">public</span> <span class="keyword">interface class</span> <span class="identifier">IAsyncStreamWriter</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">IAsyncStreamWriter</span>&lt;'T&gt; =  <span class="keyword">interface</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd>The message type.</dd></dl></div><p>The <span class="selflink">IAsyncStreamWriter<span id="LST39EBAC_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39EBAC_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST39EBAC_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST39EBAC_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for the next write.
+            If null, default options will be used.
+            Once set, this property maintains its value across subsequent
+            writes.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm">WriteAsync</a></td><td><div class="summary">
+            Writes a single asynchronously. Only one write can be pending at a time.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_IClientStreamWriter_1.htm b/doc/ref/csharp/html/html/T_Grpc_Core_IClientStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a5e3b47483321ea5ef20fb3e2378592c0820402f
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_IClientStreamWriter_1.htm
@@ -0,0 +1,27 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IClientStreamWriter(T) Interface</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IClientStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="Grpc.Core.IClientStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="IClientStreamWriter%3CT%3E interface, about IClientStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="IClientStreamWriter(Of T) interface" /><meta name="System.Keywords" content="Grpc.Core.IClientStreamWriter(Of T) interface" /><meta name="System.Keywords" content="IClientStreamWriter(Of T) interface, about IClientStreamWriter(Of T) interface" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IClientStreamWriter`1" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.IClientStreamWriter`1" /><meta name="Description" content="Client-side writable stream of messages with Close capability." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_IClientStreamWriter_1" /><meta name="guid" content="T_Grpc_Core_IClientStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IClientStreamWriter<span id="LSTCA452815_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTCA452815_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Interface</td></tr></table><span class="introStyle"></span><div class="summary">
+            Client-side writable stream of messages with Close capability.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface</span> <span class="identifier">IClientStreamWriter</span>&lt;T&gt; : <span class="identifier">IAsyncStreamWriter</span>&lt;T&gt;
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Interface</span> <span class="identifier">IClientStreamWriter</span>(<span class="keyword">Of</span> T)
+	<span class="keyword">Inherits</span> <span class="identifier">IAsyncStreamWriter</span>(<span class="keyword">Of</span> T)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">public</span> <span class="keyword">interface class</span> <span class="identifier">IClientStreamWriter</span> : <span class="identifier">IAsyncStreamWriter</span>&lt;T&gt;</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">IClientStreamWriter</span>&lt;'T&gt; =  
+    <span class="keyword">interface</span>
+        <span class="keyword">interface</span> <span class="identifier">IAsyncStreamWriter</span>&lt;'T&gt;
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd>The message type.</dd></dl></div><p>The <span class="selflink">IClientStreamWriter<span id="LSTCA452815_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTCA452815_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for the next write.
+            If null, default options will be used.
+            Once set, this property maintains its value across subsequent
+            writes.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LSTCA452815_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTCA452815_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm">CompleteAsync</a></td><td><div class="summary">
+            Completes/closes the stream. Can only be called once there is no pending write. No writes should follow calling this.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm">WriteAsync</a></td><td><div class="summary">
+            Writes a single asynchronously. Only one write can be pending at a time.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LSTCA452815_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTCA452815_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Extension Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm">WriteAllAsync<span id="LSTCA452815_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LSTCA452815_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCA452815_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            Completes the stream afterwards unless close = false.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_IHasWriteOptions.htm b/doc/ref/csharp/html/html/T_Grpc_Core_IHasWriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..1a6a4f769743d631a763f25dcbd12a9734ba0c3c
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_IHasWriteOptions.htm
@@ -0,0 +1,7 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IHasWriteOptions Interface</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IHasWriteOptions interface" /><meta name="System.Keywords" content="Grpc.Core.IHasWriteOptions interface" /><meta name="System.Keywords" content="IHasWriteOptions interface, about IHasWriteOptions interface" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IHasWriteOptions" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.IHasWriteOptions" /><meta name="Description" content="Allows sharing write options between ServerCallContext and other objects." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_IHasWriteOptions" /><meta name="guid" content="T_Grpc_Core_IHasWriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Properties" tocid="Properties_T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Properties</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IHasWriteOptions Interface</td></tr></table><span class="introStyle"></span><div class="summary">
+            Allows sharing write options between ServerCallContext and other objects.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface</span> <span class="identifier">IHasWriteOptions</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Interface</span> <span class="identifier">IHasWriteOptions</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface class</span> <span class="identifier">IHasWriteOptions</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">IHasWriteOptions</span> =  <span class="keyword">interface</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><p>The <span class="selflink">IHasWriteOptions</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IHasWriteOptions_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Gets or sets the write options.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_IMethod.htm b/doc/ref/csharp/html/html/T_Grpc_Core_IMethod.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c76e049dce76a2127fc6f95a2aee3374eabd94e6
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_IMethod.htm
@@ -0,0 +1,14 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IMethod Interface</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IMethod interface" /><meta name="System.Keywords" content="Grpc.Core.IMethod interface" /><meta name="System.Keywords" content="IMethod interface, about IMethod interface" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IMethod" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.IMethod" /><meta name="Description" content="A non-generic representation of a remote method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_IMethod" /><meta name="guid" content="T_Grpc_Core_IMethod" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_IMethod.htm" title="IMethod Properties" tocid="Properties_T_Grpc_Core_IMethod">IMethod Properties</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IMethod Interface</td></tr></table><span class="introStyle"></span><div class="summary">
+            A non-generic representation of a remote method.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface</span> <span class="identifier">IMethod</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Interface</span> <span class="identifier">IMethod</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface class</span> <span class="identifier">IMethod</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">IMethod</span> =  <span class="keyword">interface</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><p>The <span class="selflink">IMethod</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_FullName.htm">FullName</a></td><td><div class="summary">
+            Gets the fully qualified name of the method. On the server side, methods are dispatched
+            based on this name.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_Name.htm">Name</a></td><td><div class="summary">
+            Gets the unqualified name of the method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_ServiceName.htm">ServiceName</a></td><td><div class="summary">
+            Gets the name of the service to which this method belongs.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IMethod_Type.htm">Type</a></td><td><div class="summary">
+            Gets the type of the method.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_IServerStreamWriter_1.htm b/doc/ref/csharp/html/html/T_Grpc_Core_IServerStreamWriter_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..c4a194bcbfc9942b4bef12adb4a0c5341e3b8106
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_IServerStreamWriter_1.htm
@@ -0,0 +1,24 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>IServerStreamWriter(T) Interface</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="IServerStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="Grpc.Core.IServerStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="IServerStreamWriter%3CT%3E interface, about IServerStreamWriter%3CT%3E interface" /><meta name="System.Keywords" content="IServerStreamWriter(Of T) interface" /><meta name="System.Keywords" content="Grpc.Core.IServerStreamWriter(Of T) interface" /><meta name="System.Keywords" content="IServerStreamWriter(Of T) interface, about IServerStreamWriter(Of T) interface" /><meta name="Microsoft.Help.F1" content="Grpc.Core.IServerStreamWriter`1" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.IServerStreamWriter`1" /><meta name="Description" content="A writable stream of messages that is used in server-side handlers." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_IServerStreamWriter_1" /><meta name="guid" content="T_Grpc_Core_IServerStreamWriter_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Properties_T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Properties" tocid="Properties_T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Methods" tocid="Methods_T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">IServerStreamWriter<span id="LST4FC9CC99_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LST4FC9CC99_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Interface</td></tr></table><span class="introStyle"></span><div class="summary">
+            A writable stream of messages that is used in server-side handlers.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface</span> <span class="identifier">IServerStreamWriter</span>&lt;T&gt; : <span class="identifier">IAsyncStreamWriter</span>&lt;T&gt;
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Interface</span> <span class="identifier">IServerStreamWriter</span>(<span class="keyword">Of</span> T)
+	<span class="keyword">Inherits</span> <span class="identifier">IAsyncStreamWriter</span>(<span class="keyword">Of</span> T)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">public</span> <span class="keyword">interface class</span> <span class="identifier">IServerStreamWriter</span> : <span class="identifier">IAsyncStreamWriter</span>&lt;T&gt;</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">IServerStreamWriter</span>&lt;'T&gt; =  
+    <span class="keyword">interface</span>
+        <span class="keyword">interface</span> <span class="identifier">IAsyncStreamWriter</span>&lt;'T&gt;
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "T:Grpc.Core.IServerStreamWriter`1"]</p></dd></dl></div><p>The <span class="selflink">IServerStreamWriter<span id="LST4FC9CC99_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST4FC9CC99_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Write options that will be used for the next write.
+            If null, default options will be used.
+            Once set, this property maintains its value across subsequent
+            writes.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST4FC9CC99_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST4FC9CC99_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm">WriteAsync</a></td><td><div class="summary">
+            Writes a single asynchronously. Only one write can be pending at a time.
+            </div> (Inherited from <a href="T_Grpc_Core_IAsyncStreamWriter_1.htm">IAsyncStreamWriter<span id="LST4FC9CC99_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LST4FC9CC99_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Extension Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubextension.gif" alt="Public Extension Method" title="Public Extension Method" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm">WriteAllAsync<span id="LST4FC9CC99_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST4FC9CC99_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FC9CC99_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            </div> (Defined by <a href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm">AsyncStreamExtensions</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_KeyCertificatePair.htm b/doc/ref/csharp/html/html/T_Grpc_Core_KeyCertificatePair.htm
new file mode 100644
index 0000000000000000000000000000000000000000..9cd008f7f1f0667d1d05fed3f2562042b4fbf046
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_KeyCertificatePair.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>KeyCertificatePair Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="KeyCertificatePair class" /><meta name="System.Keywords" content="Grpc.Core.KeyCertificatePair class" /><meta name="System.Keywords" content="KeyCertificatePair class, about KeyCertificatePair class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.KeyCertificatePair" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.KeyCertificatePair" /><meta name="Description" content="Key certificate pair (in PEM encoding)." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_KeyCertificatePair" /><meta name="guid" content="T_Grpc_Core_KeyCertificatePair" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_KeyCertificatePair__ctor.htm" title="KeyCertificatePair Constructor " tocid="M_Grpc_Core_KeyCertificatePair__ctor">KeyCertificatePair Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Properties" tocid="Properties_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Methods" tocid="Methods_T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">KeyCertificatePair Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Key certificate pair (in PEM encoding).
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTDF403743_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDF403743_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTDF403743_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDF403743_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>KeyCertificatePair</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">KeyCertificatePair</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">KeyCertificatePair</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">KeyCertificatePair</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">KeyCertificatePair</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">KeyCertificatePair</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_KeyCertificatePair__ctor.htm">KeyCertificatePair</a></td><td><div class="summary">
+            Creates a new certificate chain - private key pair.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_KeyCertificatePair_CertificateChain.htm">CertificateChain</a></td><td><div class="summary">
+            PEM encoded certificate chain.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_KeyCertificatePair_PrivateKey.htm">PrivateKey</a></td><td><div class="summary">
+            PEM encoded private key.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Logging_ConsoleLogger.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Logging_ConsoleLogger.htm
new file mode 100644
index 0000000000000000000000000000000000000000..469d5dba42a3674ec446a2add79efedcbab99b24
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Logging_ConsoleLogger.htm
@@ -0,0 +1,11 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ConsoleLogger Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ConsoleLogger class" /><meta name="System.Keywords" content="Grpc.Core.Logging.ConsoleLogger class" /><meta name="System.Keywords" content="ConsoleLogger class, about ConsoleLogger class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ConsoleLogger" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Logging.ConsoleLogger" /><meta name="Description" content="Logger that logs to System.Console." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="T_Grpc_Core_Logging_ConsoleLogger" /><meta name="guid" content="T_Grpc_Core_Logging_ConsoleLogger" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Class" tocid="T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Logging_ConsoleLogger__ctor.htm" title="ConsoleLogger Constructor " tocid="M_Grpc_Core_Logging_ConsoleLogger__ctor">ConsoleLogger Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" title="ConsoleLogger Methods" tocid="Methods_T_Grpc_Core_Logging_ConsoleLogger">ConsoleLogger Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ConsoleLogger Class</td></tr></table><span class="introStyle"></span><div class="summary">Logger that logs to System.Console.</div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST72F258DD_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core.Logging<span id="LST72F258DD_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ConsoleLogger</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ConsoleLogger</span> : <span class="identifier">ILogger</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ConsoleLogger</span>
+	<span class="keyword">Implements</span> <span class="identifier">ILogger</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ConsoleLogger</span> : <span class="identifier">ILogger</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ConsoleLogger</span> =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">ILogger</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ConsoleLogger</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger__ctor.htm">ConsoleLogger</a></td><td><div class="summary">Creates a console logger not associated to any specific type.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Debug.htm">Debug</a></td><td><div class="summary">Logs a message with severity Debug.</div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm">Error(String, <span id="LST72F258DD_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_2?cpp=array&lt;");</script>Object<span id="LST72F258DD_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_3?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Error.htm">Error(Exception, String, <span id="LST72F258DD_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_4?cpp=array&lt;");</script>Object<span id="LST72F258DD_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_5?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Error.</div></td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm">ForType<span id="LST72F258DD_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST72F258DD_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Returns a logger associated with the specified type.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Info.htm">Info</a></td><td><div class="summary">Logs a message with severity Info.</div></td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm">Warning(String, <span id="LST72F258DD_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_8?cpp=array&lt;");</script>Object<span id="LST72F258DD_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_9?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Warning.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ConsoleLogger_Warning.htm">Warning(Exception, String, <span id="LST72F258DD_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_10?cpp=array&lt;");</script>Object<span id="LST72F258DD_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST72F258DD_11?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Warning.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Logging_ILogger.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Logging_ILogger.htm
new file mode 100644
index 0000000000000000000000000000000000000000..16971f8ddad638763867a05dad7a53b175b05516
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Logging_ILogger.htm
@@ -0,0 +1,3 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ILogger Interface</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ILogger interface" /><meta name="System.Keywords" content="Grpc.Core.Logging.ILogger interface" /><meta name="System.Keywords" content="ILogger interface, about ILogger interface" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Logging.ILogger" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Logging.ILogger" /><meta name="Description" content="For logging messages." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Logging" /><meta name="file" content="T_Grpc_Core_Logging_ILogger" /><meta name="guid" content="T_Grpc_Core_Logging_ILogger" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Logging.htm" title="Grpc.Core.Logging" tocid="N_Grpc_Core_Logging">Grpc.Core.Logging</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Logging_ILogger.htm" title="ILogger Interface" tocid="T_Grpc_Core_Logging_ILogger">ILogger Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Logging_ILogger.htm" title="ILogger Methods" tocid="Methods_T_Grpc_Core_Logging_ILogger">ILogger Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ILogger Interface</td></tr></table><span class="introStyle"></span><div class="summary">For logging messages.</div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface</span> <span class="identifier">ILogger</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Interface</span> <span class="identifier">ILogger</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">interface class</span> <span class="identifier">ILogger</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ILogger</span> =  <span class="keyword">interface</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><p>The <span class="selflink">ILogger</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Debug.htm">Debug</a></td><td><div class="summary">Logs a message with severity Debug.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Error_1.htm">Error(String, <span id="LST7965D647_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_0?cpp=array&lt;");</script>Object<span id="LST7965D647_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_1?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Error.htm">Error(Exception, String, <span id="LST7965D647_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_2?cpp=array&lt;");</script>Object<span id="LST7965D647_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_3?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Error.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_ForType__1.htm">ForType<span id="LST7965D647_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST7965D647_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">Returns a logger associated with the specified type.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Info.htm">Info</a></td><td><div class="summary">Logs a message with severity Info.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Warning_1.htm">Warning(String, <span id="LST7965D647_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_6?cpp=array&lt;");</script>Object<span id="LST7965D647_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_7?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message with severity Warning.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Logging_ILogger_Warning.htm">Warning(Exception, String, <span id="LST7965D647_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_8?cpp=array&lt;");</script>Object<span id="LST7965D647_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST7965D647_9?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">Logs a message and an associated exception with severity Warning.</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core_Logging.htm">Grpc.Core.Logging Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Marshaller_1.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Marshaller_1.htm
new file mode 100644
index 0000000000000000000000000000000000000000..20aaf66d94d00a1932432ac51c3d01246e08bab1
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Marshaller_1.htm
@@ -0,0 +1,18 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshaller(T) Structure</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Marshaller%3CT%3E structure" /><meta name="System.Keywords" content="Grpc.Core.Marshaller%3CT%3E structure" /><meta name="System.Keywords" content="Marshaller%3CT%3E structure, about Marshaller%3CT%3E structure" /><meta name="System.Keywords" content="Marshaller(Of T) structure" /><meta name="System.Keywords" content="Grpc.Core.Marshaller(Of T) structure" /><meta name="System.Keywords" content="Marshaller(Of T) structure, about Marshaller(Of T) structure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshaller`1" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Marshaller`1" /><meta name="Description" content="Encapsulates the logic for serializing and deserializing messages." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Marshaller_1" /><meta name="guid" content="T_Grpc_Core_Marshaller_1" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Marshaller_1__ctor.htm" title="Marshaller(T) Constructor " tocid="M_Grpc_Core_Marshaller_1__ctor">Marshaller(T) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Properties" tocid="Properties_T_Grpc_Core_Marshaller_1">Marshaller(T) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Methods" tocid="Methods_T_Grpc_Core_Marshaller_1">Marshaller(T) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshaller<span id="LSTEAB4093D_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEAB4093D_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">T</span><span id="LSTEAB4093D_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEAB4093D_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Structure</td></tr></table><span class="introStyle"></span><div class="summary">
+            Encapsulates the logic for serializing and deserializing messages.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">struct</span> <span class="identifier">Marshaller</span>&lt;T&gt;
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Structure</span> <span class="identifier">Marshaller</span>(<span class="keyword">Of</span> T)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> T&gt;
+<span class="keyword">public</span> <span class="keyword">value class</span> <span class="identifier">Marshaller</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Marshaller</span>&lt;'T&gt; =  <span class="keyword">struct</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">T</span></dt><dd><p style="color: #dc143c; font-size: 8.5pt; font-weight: bold;">[Missing &lt;typeparam name="T"/&gt; documentation for "T:Grpc.Core.Marshaller`1"]</p></dd></dl></div><p>The <span class="selflink">Marshaller<span id="LSTEAB4093D_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEAB4093D_2?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTEAB4093D_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEAB4093D_3?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Marshaller_1__ctor.htm">Marshaller<span id="LSTEAB4093D_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEAB4093D_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>T<span id="LSTEAB4093D_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTEAB4093D_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Initializes a new marshaller.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Marshaller_1_Deserializer.htm">Deserializer</a></td><td><div class="summary">
+            Gets the deserializer function.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Marshaller_1_Serializer.htm">Serializer</a></td><td><div class="summary">
+            Gets the serializer function.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ToString</a></td><td><div class="summary">Returns the fully qualified type name of this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Marshallers.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Marshallers.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b79baad9141a2758682a9337403cb3262d42e7c9
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Marshallers.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Marshallers Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Marshallers class" /><meta name="System.Keywords" content="Grpc.Core.Marshallers class" /><meta name="System.Keywords" content="Marshallers class, about Marshallers class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Marshallers" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Marshallers" /><meta name="Description" content="Utilities for creating marshallers." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Marshallers" /><meta name="guid" content="T_Grpc_Core_Marshallers" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Marshallers.htm" title="Marshallers Properties" tocid="Properties_T_Grpc_Core_Marshallers">Marshallers Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Marshallers.htm" title="Marshallers Methods" tocid="Methods_T_Grpc_Core_Marshallers">Marshallers Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Marshallers Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Utilities for creating marshallers.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST1C687B3B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1C687B3B_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST1C687B3B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1C687B3B_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Marshallers</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">Marshallers</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">Marshallers</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Marshallers</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Marshallers</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Marshallers</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_Marshallers_StringMarshaller.htm">StringMarshaller</a></td><td><div class="summary">
+            Returns a marshaller for <span class="code">string</span> type. This is useful for testing.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Marshallers_Create__1.htm">Create<span id="LST1C687B3B_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1C687B3B_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST1C687B3B_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST1C687B3B_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Creates a marshaller from specified serializer and deserializer.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Metadata.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Metadata.htm
new file mode 100644
index 0000000000000000000000000000000000000000..d457046129575be9939269a2f04ccdf926f47e7f
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Metadata.htm
@@ -0,0 +1,29 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Metadata class" /><meta name="System.Keywords" content="Grpc.Core.Metadata class" /><meta name="System.Keywords" content="Metadata class, about Metadata class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Metadata" /><meta name="Description" content="A collection of metadata entries that can be exchanged during a call. gRPC supports these types of metadata: Request headersare sent by the client at the beginning of a remote call before any request messages are sent." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Metadata" /><meta name="guid" content="T_Grpc_Core_Metadata" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Metadata__ctor.htm" title="Metadata Constructor " tocid="M_Grpc_Core_Metadata__ctor">Metadata Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata.htm" title="Metadata Properties" tocid="Properties_T_Grpc_Core_Metadata">Metadata Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata.htm" title="Metadata Methods" tocid="Methods_T_Grpc_Core_Metadata">Metadata Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Metadata.htm" title="Metadata Fields" tocid="Fields_T_Grpc_Core_Metadata">Metadata Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            A collection of metadata entries that can be exchanged during a call.
+            gRPC supports these types of metadata:
+            <ul><li><strong>Request headers</strong> - are sent by the client at the beginning of a remote call before any request messages are sent.</li><li><strong>Response headers</strong> - are sent by the server at the beginning of a remote call handler before any response messages are sent.</li><li><strong>Response trailers</strong> - are sent by the server at the end of a remote call along with resulting call status.</li></ul></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST821E84B4_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST821E84B4_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Metadata</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">Metadata</span> : <span class="identifier">IList</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;, 
+	<span class="identifier">ICollection</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;, <span class="identifier">IEnumerable</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;, <span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">Metadata</span>
+	<span class="keyword">Implements</span> <span class="identifier">IList</span>(<span class="keyword">Of</span> <span class="identifier">Metadata<span id="LST821E84B4_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>), <span class="identifier">ICollection</span>(<span class="keyword">Of</span> <span class="identifier">Metadata<span id="LST821E84B4_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>), 
+	<span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">Metadata<span id="LST821E84B4_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>), <span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Metadata</span> <span class="keyword">sealed</span> : <span class="identifier">IList</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;, 
+	<span class="identifier">ICollection</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;, <span class="identifier">IEnumerable</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_10?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;, <span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Metadata</span> =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IList</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_11?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;
+        <span class="keyword">interface</span> <span class="identifier">ICollection</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_12?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;
+        <span class="keyword">interface</span> <span class="identifier">IEnumerable</span>&lt;<span class="identifier">Metadata<span id="LST821E84B4_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_13?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>&gt;
+        <span class="keyword">interface</span> <span class="identifier">IEnumerable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Metadata</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata__ctor.htm">Metadata</a></td><td><div class="summary">
+            Initializes a new instance of <span class="code">Metadata</span>.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Count.htm">Count</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_IsReadOnly.htm">IsReadOnly</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Item.htm">Item</a></td><td /></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add.htm">Add(Metadata<span id="LST821E84B4_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_14?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add_1.htm">Add(String, <span id="LST821E84B4_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_15?cpp=array&lt;");</script>Byte<span id="LST821E84B4_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST821E84B4_16?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Add_2.htm">Add(String, String)</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Clear.htm">Clear</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Contains.htm">Contains</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_CopyTo.htm">CopyTo</a></td><td /></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_GetEnumerator.htm">GetEnumerator</a></td><td /></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_IndexOf.htm">IndexOf</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Insert.htm">Insert</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Remove.htm">Remove</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_RemoveAt.htm">RemoveAt</a></td><td /></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID6RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm">BinaryHeaderSuffix</a></td><td><div class="summary">
+            All binary headers should have this suffix.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Metadata_Empty.htm">Empty</a></td><td><div class="summary">
+            An read-only instance of metadata containing no entries.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID7RB')" onkeypress="SectionExpandCollapse_CheckKey('ID7RB', event)" tabindex="0"><img id="ID7RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID7RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Metadata_Entry.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Metadata_Entry.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b7e276ca2e6fbac3c9993f3a85f63300bbf14c1d
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Metadata_Entry.htm
@@ -0,0 +1,24 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Metadata.Entry Structure</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Metadata.Entry structure" /><meta name="System.Keywords" content="Grpc.Core.Metadata.Entry structure" /><meta name="System.Keywords" content="Metadata.Entry structure, about Metadata.Entry structure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Metadata.Entry" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Metadata.Entry" /><meta name="Description" content="Metadata entry" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Metadata_Entry" /><meta name="guid" content="T_Grpc_Core_Metadata_Entry" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_Metadata_Entry__ctor.htm" title="Entry Constructor " tocid="Overload_Grpc_Core_Metadata_Entry__ctor">Entry Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Metadata_Entry.htm" title="Entry Properties" tocid="Properties_T_Grpc_Core_Metadata_Entry">Entry Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Metadata_Entry.htm" title="Entry Methods" tocid="Methods_T_Grpc_Core_Metadata_Entry">Entry Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Metadata<span id="LST8E39C28A_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_0?cpp=::|nu=.");</script>Entry Structure</td></tr></table><span class="introStyle"></span><div class="summary">
+            Metadata entry
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">struct</span> <span class="identifier">Entry</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Structure</span> <span class="identifier">Entry</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">value class</span> <span class="identifier">Entry</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Entry</span> =  <span class="keyword">struct</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><p>The <span class="selflink">Metadata<span id="LST8E39C28A_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Entry__ctor.htm">Metadata<span id="LST8E39C28A_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry(String, <span id="LST8E39C28A_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_3?cpp=array&lt;");</script>Byte<span id="LST8E39C28A_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_4?cpp=&gt;|cs=[]|vb=()|nu=[]|fs=[]");</script>)</a></td><td><div class="summary">
+            Initializes a new instance of the <span class="selflink">Metadata<span id="LST8E39C28A_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> struct with a binary value.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Entry__ctor_1.htm">Metadata<span id="LST8E39C28A_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_6?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry(String, String)</a></td><td><div class="summary">
+            Initializes a new instance of the <span class="selflink">Metadata<span id="LST8E39C28A_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_7?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span> struct holding an ASCII value.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_IsBinary.htm">IsBinary</a></td><td><div class="summary">
+            Returns <span class="code">true</span> if this entry is a binary-value entry.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_Key.htm">Key</a></td><td><div class="summary">
+            Gets the metadata entry key.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_Value.htm">Value</a></td><td><div class="summary">
+            Gets the string value of this metadata entry.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Metadata_Entry_ValueBytes.htm">ValueBytes</a></td><td><div class="summary">
+            Gets the binary value of this metadata entry.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Metadata_Entry_ToString.htm">ToString</a></td><td><div class="summary">
+            Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <span class="selflink">Metadata<span id="LST8E39C28A_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_8?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Entry</span>.
+            </div> (Overrides <a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ValueType<span id="LST8E39C28A_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_9?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ToString<span id="LST8E39C28A_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST8E39C28A_10?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_MethodType.htm b/doc/ref/csharp/html/html/T_Grpc_Core_MethodType.htm
new file mode 100644
index 0000000000000000000000000000000000000000..264622b1b67249efdaff78f8e6d677cd8bae44cf
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_MethodType.htm
@@ -0,0 +1,5 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>MethodType Enumeration</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="MethodType enumeration" /><meta name="System.Keywords" content="Grpc.Core.MethodType enumeration" /><meta name="System.Keywords" content="Unary enumeration member" /><meta name="System.Keywords" content="ClientStreaming enumeration member" /><meta name="System.Keywords" content="ServerStreaming enumeration member" /><meta name="System.Keywords" content="DuplexStreaming enumeration member" /><meta name="Microsoft.Help.F1" content="Grpc.Core.MethodType" /><meta name="Microsoft.Help.F1" content="Grpc.Core.MethodType.Unary" /><meta name="Microsoft.Help.F1" content="Grpc.Core.MethodType.ClientStreaming" /><meta name="Microsoft.Help.F1" content="Grpc.Core.MethodType.ServerStreaming" /><meta name="Microsoft.Help.F1" content="Grpc.Core.MethodType.DuplexStreaming" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.MethodType" /><meta name="Description" content="Method types supported by gRPC." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_MethodType" /><meta name="guid" content="T_Grpc_Core_MethodType" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">MethodType Enumeration</td></tr></table><span class="introStyle"></span><div class="summary">
+            Method types supported by gRPC.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum</span> <span class="identifier">MethodType</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Enumeration</span> <span class="identifier">MethodType</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum class</span> <span class="identifier">MethodType</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">MethodType</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div id="enumerationSection"><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Members</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+									 
+								</th><th>Member name</th><th>Value</th><th>Description</th></tr><tr><td /><td target="F:Grpc.Core.MethodType.Unary"><span class="selflink">Unary</span></td><td>0</td><td>Single request sent from client, single response received from server.</td></tr><tr><td /><td target="F:Grpc.Core.MethodType.ClientStreaming"><span class="selflink">ClientStreaming</span></td><td>1</td><td>Stream of request sent from client, single response received from server.</td></tr><tr><td /><td target="F:Grpc.Core.MethodType.ServerStreaming"><span class="selflink">ServerStreaming</span></td><td>2</td><td>Single request sent from client, stream of responses received from server.</td></tr><tr><td /><td target="F:Grpc.Core.MethodType.DuplexStreaming"><span class="selflink">DuplexStreaming</span></td><td>3</td><td>Both server and client can stream arbitrary number of requests and responses simultaneously.</td></tr></table></div></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Method_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Method_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..054329f4bb1c6ed1f5a65bdd529635368849790c
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Method_2.htm
@@ -0,0 +1,30 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Method(TRequest, TResponse) Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="Grpc.Core.Method%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="Method%3CTRequest%2C TResponse%3E class, about Method%3CTRequest%2C TResponse%3E class" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse) class" /><meta name="System.Keywords" content="Grpc.Core.Method(Of TRequest%2C TResponse) class" /><meta name="System.Keywords" content="Method(Of TRequest%2C TResponse) class, about Method(Of TRequest%2C TResponse) class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Method`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Method`2" /><meta name="Description" content="A description of a remote method." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Method_2" /><meta name="guid" content="T_Grpc_Core_Method_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Method_2__ctor.htm" title="Method(TRequest, TResponse) Constructor " tocid="M_Grpc_Core_Method_2__ctor">Method(TRequest, TResponse) Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Properties" tocid="Properties_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Methods" tocid="Methods_T_Grpc_Core_Method_2">Method(TRequest, TResponse) Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Method<span id="LSTE51AEB66_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTE51AEB66_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            A description of a remote method.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTE51AEB66_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTE51AEB66_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Method<span id="LSTE51AEB66_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_4?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTE51AEB66_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_5?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">Method</span>&lt;TRequest, TResponse&gt; : <span class="identifier">IMethod</span>
+</pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">Method</span>(<span class="keyword">Of</span> TRequest, TResponse)
+	<span class="keyword">Implements</span> <span class="identifier">IMethod</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Method</span> : <span class="identifier">IMethod</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">Method</span>&lt;'TRequest, 'TResponse&gt; =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IMethod</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for this method.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this method.</dd></dl></div><p>The <span class="selflink">Method<span id="LSTE51AEB66_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_6?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTE51AEB66_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_7?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Method_2__ctor.htm">Method<span id="LSTE51AEB66_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_8?cs=&lt;|vb=(Of |cpp=&lt;|nu=(|fs=&lt;'");</script>TRequest, TResponse<span id="LSTE51AEB66_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE51AEB66_9?cs=&gt;|vb=)|cpp=&gt;|nu=)|fs=&gt;");</script></a></td><td><div class="summary">
+            Initializes a new instance of the <span class="code">Method</span> class.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_FullName.htm">FullName</a></td><td><div class="summary">
+            Gets the fully qualified name of the method. On the server side, methods are dispatched
+            based on this name.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_Name.htm">Name</a></td><td><div class="summary">
+            Gets the unqualified name of the method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_RequestMarshaller.htm">RequestMarshaller</a></td><td><div class="summary">
+            Gets the marshaller used for request messages.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_ResponseMarshaller.htm">ResponseMarshaller</a></td><td><div class="summary">
+            Gets the marshaller used for response messages.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_ServiceName.htm">ServiceName</a></td><td><div class="summary">
+            Gets the name of the service to which this method belongs.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Method_2_Type.htm">Type</a></td><td><div class="summary">
+            Gets the type of the method.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_RpcException.htm b/doc/ref/csharp/html/html/T_Grpc_Core_RpcException.htm
new file mode 100644
index 0000000000000000000000000000000000000000..497c69ddbceae43a925c5c6bf70c5816dcf24d70
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_RpcException.htm
@@ -0,0 +1,21 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>RpcException Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="RpcException class" /><meta name="System.Keywords" content="Grpc.Core.RpcException class" /><meta name="System.Keywords" content="RpcException class, about RpcException class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.RpcException" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.RpcException" /><meta name="Description" content="Thrown when remote procedure call fails. Every RpcException is associated with a resulting of the call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_RpcException" /><meta name="guid" content="T_Grpc_Core_RpcException" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_RpcException__ctor.htm" title="RpcException Constructor " tocid="Overload_Grpc_Core_RpcException__ctor">RpcException Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_RpcException.htm" title="RpcException Properties" tocid="Properties_T_Grpc_Core_RpcException">RpcException Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_RpcException.htm" title="RpcException Methods" tocid="Methods_T_Grpc_Core_RpcException">RpcException Methods</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Events_T_Grpc_Core_RpcException.htm" title="RpcException Events" tocid="Events_T_Grpc_Core_RpcException">RpcException Events</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">RpcException Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Thrown when remote procedure call fails. Every <span class="code">RpcException</span> is associated with a resulting <a href="P_Grpc_Core_RpcException_Status.htm">Status</a> of the call.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST4FAB4D45_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FAB4D45_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">System<span id="LST4FAB4D45_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FAB4D45_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Exception</a><br />    <span class="selflink">Grpc.Core<span id="LST4FAB4D45_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4FAB4D45_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>RpcException</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">RpcException</span> : <span class="identifier">Exception</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">RpcException</span>
+	<span class="keyword">Inherits</span> <span class="identifier">Exception</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">RpcException</span> : <span class="keyword">public</span> <span class="identifier">Exception</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">RpcException</span> =  
+    <span class="keyword">class</span>
+        <span class="keyword">inherit</span> <span class="identifier">Exception</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">RpcException</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_RpcException__ctor.htm">RpcException(Status)</a></td><td><div class="summary">
+            Creates a new <span class="code">RpcException</span> associated with given status.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_RpcException__ctor_1.htm">RpcException(Status, String)</a></td><td><div class="summary">
+            Creates a new <span class="code">RpcException</span> associated with given status and message.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2wyfbc48" target="_blank">Data</a></td><td><div class="summary">Gets a collection of key/value pairs that provide additional user-defined information about the exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/71tawy4s" target="_blank">HelpLink</a></td><td><div class="summary">Gets or sets a link to the help file associated with this exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/sh5cw61c" target="_blank">HResult</a></td><td><div class="summary">Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/902sca80" target="_blank">InnerException</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a> instance that caused the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/9btwf6wk" target="_blank">Message</a></td><td><div class="summary">Gets a message that describes the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/85weac5w" target="_blank">Source</a></td><td><div class="summary">Gets or sets the name of the application or the object that causes the error.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dxzhy005" target="_blank">StackTrace</a></td><td><div class="summary">Gets a string representation of the immediate frames on the call stack.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_RpcException_Status.htm">Status</a></td><td><div class="summary">
+            Resulting status of the call.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2wchw354" target="_blank">TargetSite</a></td><td><div class="summary">Gets the method that throws the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/49kcee3b" target="_blank">GetBaseException</a></td><td><div class="summary">When overridden in a derived class, returns the <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a> that is the root cause of one or more subsequent exceptions.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/fwb1489e" target="_blank">GetObjectData</a></td><td><div class="summary">When overridden in a derived class, sets the <a href="http://msdn2.microsoft.com/en-us/library/a9b6042e" target="_blank">SerializationInfo</a> with information about the exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/44zb316t" target="_blank">GetType</a></td><td><div class="summary">Gets the runtime type of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/es4y6f7e" target="_blank">ToString</a></td><td><div class="summary">Creates and returns a string representation of the current exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Events</span></div><div id="ID6RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protevent.gif" alt="Protected event" title="Protected event" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/ee332915" target="_blank">SerializeObjectState</a></td><td><div class="summary">Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/c18k6c59" target="_blank">Exception</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID7RB')" onkeypress="SectionExpandCollapse_CheckKey('ID7RB', event)" tabindex="0"><img id="ID7RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID7RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Server.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Server.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a32eeceb244c8956db415875072172b6f2229547
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Server.htm
@@ -0,0 +1,28 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Server class" /><meta name="System.Keywords" content="Grpc.Core.Server class" /><meta name="System.Keywords" content="Server class, about Server class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Server" /><meta name="Description" content="gRPC server. A single server can server arbitrary number of services and can listen on more than one ports." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Server" /><meta name="guid" content="T_Grpc_Core_Server" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Server__ctor.htm" title="Server Constructor " tocid="M_Grpc_Core_Server__ctor">Server Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Server.htm" title="Server Properties" tocid="Properties_T_Grpc_Core_Server">Server Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server.htm" title="Server Methods" tocid="Methods_T_Grpc_Core_Server">Server Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            gRPC server. A single server can server arbitrary number of services and can listen on more than one ports.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST9A9C4CF6_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9A9C4CF6_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST9A9C4CF6_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST9A9C4CF6_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Server</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">Server</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">Server</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Server</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">Server</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Server</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server__ctor.htm">Server</a></td><td><div class="summary">
+            Create a new server.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Server_Ports.htm">Ports</a></td><td><div class="summary">
+            Ports on which the server will listen once started. Register a port with this
+            server by adding its definition to this collection.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Server_Services.htm">Services</a></td><td><div class="summary">
+            Services that will be exported by the server once started. Register a service with this
+            server by adding its definition to this collection.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Server_ShutdownTask.htm">ShutdownTask</a></td><td><div class="summary">
+            To allow awaiting termination of the server.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_KillAsync.htm">KillAsync</a></td><td><div class="summary">
+            Requests server shutdown while cancelling all the in-progress calls.
+            The returned task finishes when shutdown procedure is complete.
+            </div></td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ShutdownAsync.htm">ShutdownAsync</a></td><td><div class="summary">
+            Requests server shutdown and when there are no more calls being serviced,
+            cleans up used resources. The returned task finishes when shutdown procedure
+            is complete.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_Start.htm">Start</a></td><td><div class="summary">
+            Starts the server.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ServerCallContext.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ServerCallContext.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0e0c4b4aedd0b5c8ac2162f438ebfc478fa86d53
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ServerCallContext.htm
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCallContext Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerCallContext class" /><meta name="System.Keywords" content="Grpc.Core.ServerCallContext class" /><meta name="System.Keywords" content="ServerCallContext class, about ServerCallContext class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCallContext" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ServerCallContext" /><meta name="Description" content="Context for a server-side call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ServerCallContext" /><meta name="guid" content="T_Grpc_Core_ServerCallContext" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Properties" tocid="Properties_T_Grpc_Core_ServerCallContext">ServerCallContext Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Methods" tocid="Methods_T_Grpc_Core_ServerCallContext">ServerCallContext Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCallContext Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Context for a server-side call.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST4688C34B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4688C34B_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST4688C34B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST4688C34B_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCallContext</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ServerCallContext</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ServerCallContext</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ServerCallContext</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ServerCallContext</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ServerCallContext</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_CancellationToken.htm">CancellationToken</a></td><td><div class="summary">Cancellation token signals when call is cancelled.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Deadline.htm">Deadline</a></td><td><div class="summary">Deadline for this RPC.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Host.htm">Host</a></td><td><div class="summary">Name of host called in this RPC.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Method.htm">Method</a></td><td><div class="summary">Name of method called in this RPC.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Peer.htm">Peer</a></td><td><div class="summary">Address of the remote endpoint in URI format.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_RequestHeaders.htm">RequestHeaders</a></td><td><div class="summary">Initial metadata sent by client.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_ResponseTrailers.htm">ResponseTrailers</a></td><td><div class="summary">Trailers to send back to client after RPC finishes.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_Status.htm">Status</a></td><td><div class="summary"> Status to send back to client after RPC finishes.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerCallContext_WriteOptions.htm">WriteOptions</a></td><td><div class="summary">
+            Allows setting write options for the following write.
+            For streaming response calls, this property is also exposed as on IServerStreamWriter for convenience.
+            Both properties are backed by the same underlying value.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm">CreatePropagationToken</a></td><td><div class="summary">
+            Creates a propagation token to be used to propagate call context to a child call.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm">WriteResponseHeadersAsync</a></td><td><div class="summary">
+            Asynchronously sends response headers for the current call to the client. This method may only be invoked once for each call and needs to be invoked
+            before any response messages are written. Writing the first response message implicitly sends empty response headers if <span class="code">WriteResponseHeadersAsync</span> haven't
+            been called yet.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ServerCredentials.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ServerCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..dab5f2732038dce7db5dd873edb2b5548283c8e3
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ServerCredentials.htm
@@ -0,0 +1,13 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerCredentials Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerCredentials class" /><meta name="System.Keywords" content="Grpc.Core.ServerCredentials class" /><meta name="System.Keywords" content="ServerCredentials class, about ServerCredentials class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerCredentials" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ServerCredentials" /><meta name="Description" content="Server side credentials." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ServerCredentials" /><meta name="guid" content="T_Grpc_Core_ServerCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerCredentials__ctor.htm" title="ServerCredentials Constructor " tocid="M_Grpc_Core_ServerCredentials__ctor">ServerCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Properties" tocid="Properties_T_Grpc_Core_ServerCredentials">ServerCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Methods" tocid="Methods_T_Grpc_Core_ServerCredentials">ServerCredentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerCredentials Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Server side credentials.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTE6D34D84_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE6D34D84_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTE6D34D84_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE6D34D84_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCredentials</span><br />    <a href="T_Grpc_Core_SslServerCredentials.htm">Grpc.Core<span id="LSTE6D34D84_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE6D34D84_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SslServerCredentials</a><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">abstract</span> <span class="keyword">class</span> <span class="identifier">ServerCredentials</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">MustInherit</span> <span class="keyword">Class</span> <span class="identifier">ServerCredentials</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ServerCredentials</span> <span class="keyword">abstract</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">ServerCredentials</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ServerCredentials</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="protected;declared;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="M_Grpc_Core_ServerCredentials__ctor.htm">ServerCredentials</a></td><td><div class="summary">Initializes a new instance of the <span class="selflink">ServerCredentials</span> class</div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="P_Grpc_Core_ServerCredentials_Insecure.htm">Insecure</a></td><td><div class="summary">
+            Returns instance of credential that provides no security and 
+            will result in creating an unsecure server port with no encryption whatsoever.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ServerPort.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ServerPort.htm
new file mode 100644
index 0000000000000000000000000000000000000000..21ddace1d032a8c9d14256386f8450ef6942cecc
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ServerPort.htm
@@ -0,0 +1,16 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerPort Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerPort class" /><meta name="System.Keywords" content="Grpc.Core.ServerPort class" /><meta name="System.Keywords" content="ServerPort class, about ServerPort class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerPort" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ServerPort" /><meta name="Description" content="A port exposed by a server." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ServerPort" /><meta name="guid" content="T_Grpc_Core_ServerPort" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerPort__ctor.htm" title="ServerPort Constructor " tocid="M_Grpc_Core_ServerPort__ctor">ServerPort Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_ServerPort.htm" title="ServerPort Properties" tocid="Properties_T_Grpc_Core_ServerPort">ServerPort Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_ServerPort.htm" title="ServerPort Methods" tocid="Methods_T_Grpc_Core_ServerPort">ServerPort Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_ServerPort.htm" title="ServerPort Fields" tocid="Fields_T_Grpc_Core_ServerPort">ServerPort Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerPort Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            A port exposed by a server.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTDA23567B_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDA23567B_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTDA23567B_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTDA23567B_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPort</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ServerPort</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ServerPort</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ServerPort</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ServerPort</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ServerPort</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerPort__ctor.htm">ServerPort</a></td><td><div class="summary">
+            Creates a new port on which server should listen.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_BoundPort.htm">BoundPort</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_Credentials.htm">Credentials</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_Host.htm">Host</a></td><td /></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_ServerPort_Port.htm">Port</a></td><td /></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID6RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_ServerPort_PickUnused.htm">PickUnused</a></td><td><div class="summary">
+            Pass this value as port to have the server choose an unused listening port for you.
+            Ports added to a server will contain the bound port in their <a href="P_Grpc_Core_ServerPort_BoundPort.htm">BoundPort</a> property.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID7RB')" onkeypress="SectionExpandCollapse_CheckKey('ID7RB', event)" tabindex="0"><img id="ID7RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID7RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ServerServiceDefinition.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ServerServiceDefinition.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a673de01d1cc10a90259085d0a05748b50fc1eb7
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ServerServiceDefinition.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerServiceDefinition class" /><meta name="System.Keywords" content="Grpc.Core.ServerServiceDefinition class" /><meta name="System.Keywords" content="ServerServiceDefinition class, about ServerServiceDefinition class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ServerServiceDefinition" /><meta name="Description" content="Mapping of method names to server call handlers. Normally, the ServerServiceDefinition objects will be created by the BindService factory method that is part of the autogenerated code for a protocol buffers service definition." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ServerServiceDefinition" /><meta name="guid" content="T_Grpc_Core_ServerServiceDefinition" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Mapping of method names to server call handlers.
+            Normally, the <span class="code">ServerServiceDefinition</span> objects will be created by the <span class="code">BindService</span> factory method 
+            that is part of the autogenerated code for a protocol buffers service definition.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTCBD91EBC_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCBD91EBC_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTCBD91EBC_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTCBD91EBC_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerServiceDefinition</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ServerServiceDefinition</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ServerServiceDefinition</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ServerServiceDefinition</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ServerServiceDefinition</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ServerServiceDefinition</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm">CreateBuilder</a></td><td><div class="summary">
+            Creates a new builder object for <span class="code">ServerServiceDefinition</span>.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ServerServiceDefinition_Builder.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ServerServiceDefinition_Builder.htm
new file mode 100644
index 0000000000000000000000000000000000000000..442df368ef0351c99949daa6e92460614946a7c3
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ServerServiceDefinition_Builder.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerServiceDefinition.Builder Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerServiceDefinition.Builder class" /><meta name="System.Keywords" content="Grpc.Core.ServerServiceDefinition.Builder class" /><meta name="System.Keywords" content="ServerServiceDefinition.Builder class, about ServerServiceDefinition.Builder class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerServiceDefinition.Builder" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ServerServiceDefinition.Builder" /><meta name="Description" content="Builder class for ." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ServerServiceDefinition_Builder" /><meta name="guid" content="T_Grpc_Core_ServerServiceDefinition_Builder" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm" title="ServerServiceDefinition.Builder Constructor " tocid="M_Grpc_Core_ServerServiceDefinition_Builder__ctor">ServerServiceDefinition.Builder Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="Builder Methods" tocid="Methods_T_Grpc_Core_ServerServiceDefinition_Builder">Builder Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerServiceDefinition<span id="LST77F651CD_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_0?cpp=::|nu=.");</script>Builder Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Builder class for <a href="T_Grpc_Core_ServerServiceDefinition.htm">ServerServiceDefinition</a>.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST77F651CD_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST77F651CD_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerServiceDefinition<span id="LST77F651CD_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">Builder</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">Builder</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Builder</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">Builder</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">ServerServiceDefinition<span id="LST77F651CD_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm">ServerServiceDefinition<span id="LST77F651CD_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Builder</a></td><td><div class="summary">
+            Creates a new instance of builder.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm">AddMethod<span id="LST77F651CD_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST77F651CD_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ClientStreamingServerMethod<span id="LST77F651CD_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_10?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a client streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm">AddMethod<span id="LST77F651CD_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_12?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_13?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST77F651CD_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_14?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_15?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, DuplexStreamingServerMethod<span id="LST77F651CD_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_16?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_17?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a bidirectional streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm">AddMethod<span id="LST77F651CD_18"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_18?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_19"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_19?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST77F651CD_20"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_20?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_21"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_21?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, ServerStreamingServerMethod<span id="LST77F651CD_22"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_22?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_23"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_23?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a server streaming method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm">AddMethod<span id="LST77F651CD_24"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_24?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_25"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_25?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(Method<span id="LST77F651CD_26"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_26?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_27"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_27?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, UnaryServerMethod<span id="LST77F651CD_28"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_28?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>TRequest, TResponse<span id="LST77F651CD_29"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST77F651CD_29?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Adds a definitions for a single request - single response method.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm">Build</a></td><td><div class="summary">
+            Creates an immutable <span class="code">ServerServiceDefinition</span> from this builder.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID5RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_ServerStreamingServerMethod_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_ServerStreamingServerMethod_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..cf02bb4f6bc317c032b684d29b70adab01cb68b1
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_ServerStreamingServerMethod_2.htm
@@ -0,0 +1,25 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>ServerStreamingServerMethod(TRequest, TResponse) Delegate</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="ServerStreamingServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="Grpc.Core.ServerStreamingServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="ServerStreamingServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="System.Keywords" content="Grpc.Core.ServerStreamingServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="Microsoft.Help.F1" content="Grpc.Core.ServerStreamingServerMethod`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.ServerStreamingServerMethod`2" /><meta name="Description" content="Server-side handler for server streaming call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_ServerStreamingServerMethod_2" /><meta name="guid" content="T_Grpc_Core_ServerStreamingServerMethod_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">ServerStreamingServerMethod<span id="LSTFFA58EA2_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFFA58EA2_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LSTFFA58EA2_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFFA58EA2_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Delegate</td></tr></table><span class="introStyle"></span><div class="summary">
+            Server-side handler for server streaming call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span> <span class="identifier">ServerStreamingServerMethod</span>&lt;TRequest, TResponse&gt;(
+	TRequest <span class="parameter">request</span>,
+	<span class="identifier">IServerStreamWriter</span>&lt;TResponse&gt; <span class="parameter">responseStream</span>,
+	<span class="identifier">ServerCallContext</span> <span class="parameter">context</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Delegate</span> <span class="keyword">Function</span> <span class="identifier">ServerStreamingServerMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">request</span> <span class="keyword">As</span> TRequest,
+	<span class="parameter">responseStream</span> <span class="keyword">As</span> <span class="identifier">IServerStreamWriter</span>(<span class="keyword">Of</span> TResponse),
+	<span class="parameter">context</span> <span class="keyword">As</span> <span class="identifier">ServerCallContext</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span>^ <span class="identifier">ServerStreamingServerMethod</span>(
+	TRequest <span class="parameter">request</span>, 
+	<span class="identifier">IServerStreamWriter</span>&lt;TResponse&gt;^ <span class="parameter">responseStream</span>, 
+	<span class="identifier">ServerCallContext</span>^ <span class="parameter">context</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ServerStreamingServerMethod</span> = 
+    <span class="keyword">delegate</span> <span class="keyword">of</span> 
+        <span class="parameter">request</span> : 'TRequest * 
+        <span class="parameter">responseStream</span> : <span class="identifier">IServerStreamWriter</span>&lt;'TResponse&gt; * 
+        <span class="parameter">context</span> : <span class="identifier">ServerCallContext</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">request</span></dt><dd>Type: <span class="selflink"><span class="typeparameter">TRequest</span></span><br /></dd><dt><span class="parameter">responseStream</span></dt><dd>Type: <a href="T_Grpc_Core_IServerStreamWriter_1.htm">Grpc.Core<span id="LSTFFA58EA2_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFFA58EA2_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>IServerStreamWriter</a><span id="LSTFFA58EA2_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFFA58EA2_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LSTFFA58EA2_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFFA58EA2_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script><br /></dd><dt><span class="parameter">context</span></dt><dd>Type: <a href="T_Grpc_Core_ServerCallContext.htm">Grpc.Core<span id="LSTFFA58EA2_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTFFA58EA2_5?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCallContext</a><br /></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for this method.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this method.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd235678" target="_blank">Task</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Server_ServerPortCollection.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Server_ServerPortCollection.htm
new file mode 100644
index 0000000000000000000000000000000000000000..08ab135f4d572ef0b1ff6f2c9bf5997cb8af5fab
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Server_ServerPortCollection.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ServerPortCollection Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Server.ServerPortCollection class" /><meta name="System.Keywords" content="Grpc.Core.Server.ServerPortCollection class" /><meta name="System.Keywords" content="Server.ServerPortCollection class, about Server.ServerPortCollection class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ServerPortCollection" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Server.ServerPortCollection" /><meta name="Description" content="Collection of server ports." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Server_ServerPortCollection" /><meta name="guid" content="T_Grpc_Core_Server_ServerPortCollection" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServerPortCollection.htm" title="ServerPortCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServerPortCollection">ServerPortCollection Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LST92C92938_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92C92938_0?cpp=::|nu=.");</script>ServerPortCollection Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Collection of server ports.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST92C92938_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92C92938_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST92C92938_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92C92938_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Server<span id="LST92C92938_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92C92938_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ServerPortCollection</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ServerPort</span>&gt;, 
+	<span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ServerPortCollection</span>
+	<span class="keyword">Implements</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">ServerPort</span>), <span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ServerPortCollection</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ServerPort</span>^&gt;, 
+	<span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ServerPortCollection</span> =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ServerPort</span>&gt;
+        <span class="keyword">interface</span> <span class="identifier">IEnumerable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Server<span id="LST92C92938_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST92C92938_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerPortCollection</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_Add.htm">Add(ServerPort)</a></td><td><div class="summary">
+            Adds a new port on which server should listen.
+            Only call this before Start().
+            <h4 class="subHeading">Return Value</h4>Type: <br />The port on which server will be listening.</div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_Add_1.htm">Add(String, Int32, ServerCredentials)</a></td><td><div class="summary">
+            Adds a new port on which server should listen.
+            <h4 class="subHeading">Return Value</h4>Type: <br />The port on which server will be listening.</div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm">GetEnumerator</a></td><td><div class="summary">
+            Gets enumerator for this collection.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm
new file mode 100644
index 0000000000000000000000000000000000000000..054b16bc4d49ef074381a4cf464bfd02c423c09b
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Server.ServiceDefinitionCollection Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Server.ServiceDefinitionCollection class" /><meta name="System.Keywords" content="Grpc.Core.Server.ServiceDefinitionCollection class" /><meta name="System.Keywords" content="Server.ServiceDefinitionCollection class, about Server.ServiceDefinitionCollection class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Server.ServiceDefinitionCollection" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Server.ServiceDefinitionCollection" /><meta name="Description" content="Collection of service definitions." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Server_ServiceDefinitionCollection" /><meta name="guid" content="T_Grpc_Core_Server_ServiceDefinitionCollection" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="ServiceDefinitionCollection Methods" tocid="Methods_T_Grpc_Core_Server_ServiceDefinitionCollection">ServiceDefinitionCollection Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Server<span id="LST571DE916_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST571DE916_0?cpp=::|nu=.");</script>ServiceDefinitionCollection Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Collection of service definitions.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST571DE916_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST571DE916_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST571DE916_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST571DE916_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Server<span id="LST571DE916_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST571DE916_3?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">ServiceDefinitionCollection</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ServerServiceDefinition</span>&gt;, 
+	<span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">ServiceDefinitionCollection</span>
+	<span class="keyword">Implements</span> <span class="identifier">IEnumerable</span>(<span class="keyword">Of</span> <span class="identifier">ServerServiceDefinition</span>), <span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">ServiceDefinitionCollection</span> : <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ServerServiceDefinition</span>^&gt;, 
+	<span class="identifier">IEnumerable</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">ServiceDefinitionCollection</span> =  
+    <span class="keyword">class</span>
+        <span class="keyword">interface</span> <span class="identifier">IEnumerable</span>&lt;<span class="identifier">ServerServiceDefinition</span>&gt;
+        <span class="keyword">interface</span> <span class="identifier">IEnumerable</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">Server<span id="LST571DE916_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST571DE916_4?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServiceDefinitionCollection</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm">Add</a></td><td><div class="summary">
+            Adds a service definition to the server. This is how you register
+            handlers for a service with the server. Only call this before Start().
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm">GetEnumerator</a></td><td><div class="summary">
+            Gets enumerator for this collection.
+            </div></td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_SslCredentials.htm b/doc/ref/csharp/html/html/T_Grpc_Core_SslCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..84580d7864eb76a4056915b41d793a0822f4586f
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_SslCredentials.htm
@@ -0,0 +1,28 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslCredentials Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslCredentials class" /><meta name="System.Keywords" content="Grpc.Core.SslCredentials class" /><meta name="System.Keywords" content="SslCredentials class, about SslCredentials class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslCredentials" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.SslCredentials" /><meta name="Description" content="Client-side SSL credentials." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_SslCredentials" /><meta name="guid" content="T_Grpc_Core_SslCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslCredentials__ctor.htm" title="SslCredentials Constructor " tocid="Overload_Grpc_Core_SslCredentials__ctor">SslCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslCredentials.htm" title="SslCredentials Properties" tocid="Properties_T_Grpc_Core_SslCredentials">SslCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_SslCredentials.htm" title="SslCredentials Methods" tocid="Methods_T_Grpc_Core_SslCredentials">SslCredentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslCredentials Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Client-side SSL credentials.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTBE8D4B43_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBE8D4B43_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <a href="T_Grpc_Core_Credentials.htm">Grpc.Core<span id="LSTBE8D4B43_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBE8D4B43_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Credentials</a><br />    <span class="selflink">Grpc.Core<span id="LSTBE8D4B43_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBE8D4B43_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SslCredentials</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">sealed</span> <span class="keyword">class</span> <span class="identifier">SslCredentials</span> : <span class="identifier">Credentials</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">SslCredentials</span>
+	<span class="keyword">Inherits</span> <span class="identifier">Credentials</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">SslCredentials</span> <span class="keyword">sealed</span> : <span class="keyword">public</span> <span class="identifier">Credentials</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">SslCredentials</span> =  
+    <span class="keyword">class</span>
+        <span class="keyword">inherit</span> <span class="identifier">Credentials</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">SslCredentials</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslCredentials__ctor.htm">SslCredentials<span id="LSTBE8D4B43_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTBE8D4B43_3?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a></td><td><div class="summary">
+            Creates client-side SSL credentials loaded from
+            disk file pointed to by the GRPC_DEFAULT_SSL_ROOTS_FILE_PATH environment variable.
+            If that fails, gets the roots certificates from a well known place on disk.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslCredentials__ctor_1.htm">SslCredentials(String)</a></td><td><div class="summary">
+            Creates client-side SSL credentials from
+            a string containing PEM encoded root certificates.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslCredentials__ctor_2.htm">SslCredentials(String, KeyCertificatePair)</a></td><td><div class="summary">
+            Creates client-side SSL credentials.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslCredentials_KeyCertificatePair.htm">KeyCertificatePair</a></td><td><div class="summary">
+            Client side key and certificate pair.
+            If null, client will not use key and certificate pair.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslCredentials_RootCertificates.htm">RootCertificates</a></td><td><div class="summary">
+            PEM encoding of the server root certificates.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_SslServerCredentials.htm b/doc/ref/csharp/html/html/T_Grpc_Core_SslServerCredentials.htm
new file mode 100644
index 0000000000000000000000000000000000000000..641f2b7a5328ed9bd396ac09c047ee12d07697a7
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_SslServerCredentials.htm
@@ -0,0 +1,25 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>SslServerCredentials Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="SslServerCredentials class" /><meta name="System.Keywords" content="Grpc.Core.SslServerCredentials class" /><meta name="System.Keywords" content="SslServerCredentials class, about SslServerCredentials class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.SslServerCredentials" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.SslServerCredentials" /><meta name="Description" content="Server-side SSL credentials." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_SslServerCredentials" /><meta name="guid" content="T_Grpc_Core_SslServerCredentials" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Overload_Grpc_Core_SslServerCredentials__ctor.htm" title="SslServerCredentials Constructor " tocid="Overload_Grpc_Core_SslServerCredentials__ctor">SslServerCredentials Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Properties" tocid="Properties_T_Grpc_Core_SslServerCredentials">SslServerCredentials Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Methods" tocid="Methods_T_Grpc_Core_SslServerCredentials">SslServerCredentials Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">SslServerCredentials Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Server-side SSL credentials.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTA4AAD890_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA4AAD890_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <a href="T_Grpc_Core_ServerCredentials.htm">Grpc.Core<span id="LSTA4AAD890_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA4AAD890_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCredentials</a><br />    <span class="selflink">Grpc.Core<span id="LSTA4AAD890_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA4AAD890_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>SslServerCredentials</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">SslServerCredentials</span> : <span class="identifier">ServerCredentials</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">SslServerCredentials</span>
+	<span class="keyword">Inherits</span> <span class="identifier">ServerCredentials</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">SslServerCredentials</span> : <span class="keyword">public</span> <span class="identifier">ServerCredentials</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">SslServerCredentials</span> =  
+    <span class="keyword">class</span>
+        <span class="keyword">inherit</span> <span class="identifier">ServerCredentials</span>
+    <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">SslServerCredentials</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslServerCredentials__ctor.htm">SslServerCredentials(IEnumerable<span id="LSTA4AAD890_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA4AAD890_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>KeyCertificatePair<span id="LSTA4AAD890_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA4AAD890_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Creates server-side SSL credentials.
+            This constructor should be use if you do not wish to autheticate client
+            using client root certificates.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_SslServerCredentials__ctor_1.htm">SslServerCredentials(IEnumerable<span id="LSTA4AAD890_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA4AAD890_5?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>KeyCertificatePair<span id="LSTA4AAD890_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTA4AAD890_6?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, String, Boolean)</a></td><td><div class="summary">
+            Creates server-side SSL credentials.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm">ForceClientAuthentication</a></td><td><div class="summary">
+            If true, the authenticity of client check will be enforced.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm">KeyCertificatePairs</a></td><td><div class="summary">
+            Key-certificate pairs.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_SslServerCredentials_RootCertificates.htm">RootCertificates</a></td><td><div class="summary">
+            PEM encoded client root certificates.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Status.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Status.htm
new file mode 100644
index 0000000000000000000000000000000000000000..7f2848d4ca1720a58d4a4d4827b66bcaaa462674
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Status.htm
@@ -0,0 +1,24 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Status Structure</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Status structure" /><meta name="System.Keywords" content="Grpc.Core.Status structure" /><meta name="System.Keywords" content="Status structure, about Status structure" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Status" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Status" /><meta name="Description" content="Represents RPC result, which consists of and an optional detail string." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_Status" /><meta name="guid" content="T_Grpc_Core_Status" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_Status__ctor.htm" title="Status Constructor " tocid="M_Grpc_Core_Status__ctor">Status Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_Status.htm" title="Status Properties" tocid="Properties_T_Grpc_Core_Status">Status Properties</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Status.htm" title="Status Methods" tocid="Methods_T_Grpc_Core_Status">Status Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_Status.htm" title="Status Fields" tocid="Fields_T_Grpc_Core_Status">Status Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Status Structure</td></tr></table><span class="introStyle"></span><div class="summary">
+            Represents RPC result, which consists of <a href="P_Grpc_Core_Status_StatusCode.htm">StatusCode</a> and an optional detail string. 
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">struct</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Structure</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">value class</span> <span class="identifier">Status</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Status</span> =  <span class="keyword">struct</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><p>The <span class="selflink">Status</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Status__ctor.htm">Status</a></td><td><div class="summary">
+            Creates a new instance of <span class="code">Status</span>.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Status_Detail.htm">Detail</a></td><td><div class="summary">
+            Gets the detail.
+            </div></td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_Status_StatusCode.htm">StatusCode</a></td><td><div class="summary">
+            Gets the gRPC status code. OK indicates success, all other values indicate an error.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/2dts52z7" target="_blank">Equals</a></td><td><div class="summary">Indicates whether this instance and a specified object are equal.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/y3509fc2" target="_blank">GetHashCode</a></td><td><div class="summary">Returns the hash code for this instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/aey3s293" target="_blank">ValueType</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_Status_ToString.htm">ToString</a></td><td><div class="summary">
+            Returns a <a href="http://msdn2.microsoft.com/en-us/library/s1wwdcbf" target="_blank">String</a> that represents the current <span class="selflink">Status</span>.
+            </div> (Overrides <a href="http://msdn2.microsoft.com/en-us/library/wb77sz3h" target="_blank">ValueType<span id="LSTF8554F0F_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF8554F0F_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ToString<span id="LSTF8554F0F_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTF8554F0F_1?cs=()|vb=|cpp=()|nu=()|fs=()");</script></a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Status_DefaultCancelled.htm">DefaultCancelled</a></td><td><div class="summary">
+            Default result of a cancelled RPC. StatusCode=Cancelled, empty details message.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_Status_DefaultSuccess.htm">DefaultSuccess</a></td><td><div class="summary">
+            Default result of a successful RPC. StatusCode=OK, empty details message.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID6RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_StatusCode.htm b/doc/ref/csharp/html/html/T_Grpc_Core_StatusCode.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a160be54e8f2e94dafb03836fd7756e1a29a5afe
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_StatusCode.htm
@@ -0,0 +1,52 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>StatusCode Enumeration</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="StatusCode enumeration" /><meta name="System.Keywords" content="Grpc.Core.StatusCode enumeration" /><meta name="System.Keywords" content="OK enumeration member" /><meta name="System.Keywords" content="Cancelled enumeration member" /><meta name="System.Keywords" content="Unknown enumeration member" /><meta name="System.Keywords" content="InvalidArgument enumeration member" /><meta name="System.Keywords" content="DeadlineExceeded enumeration member" /><meta name="System.Keywords" content="NotFound enumeration member" /><meta name="System.Keywords" content="AlreadyExists enumeration member" /><meta name="System.Keywords" content="PermissionDenied enumeration member" /><meta name="System.Keywords" content="Unauthenticated enumeration member" /><meta name="System.Keywords" content="ResourceExhausted enumeration member" /><meta name="System.Keywords" content="FailedPrecondition enumeration member" /><meta name="System.Keywords" content="Aborted enumeration member" /><meta name="System.Keywords" content="OutOfRange enumeration member" /><meta name="System.Keywords" content="Unimplemented enumeration member" /><meta name="System.Keywords" content="Internal enumeration member" /><meta name="System.Keywords" content="Unavailable enumeration member" /><meta name="System.Keywords" content="DataLoss enumeration member" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.OK" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.Cancelled" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.Unknown" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.InvalidArgument" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.DeadlineExceeded" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.NotFound" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.AlreadyExists" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.PermissionDenied" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.Unauthenticated" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.ResourceExhausted" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.FailedPrecondition" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.Aborted" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.OutOfRange" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.Unimplemented" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.Internal" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.Unavailable" /><meta name="Microsoft.Help.F1" content="Grpc.Core.StatusCode.DataLoss" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.StatusCode" /><meta name="Description" content="Result of a remote procedure call. Based on grpc_status_code from grpc/status.h" /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_StatusCode" /><meta name="guid" content="T_Grpc_Core_StatusCode" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">StatusCode Enumeration</td></tr></table><span class="introStyle"></span><div class="summary">
+            Result of a remote procedure call.
+            Based on grpc_status_code from grpc/status.h
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum</span> <span class="identifier">StatusCode</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Enumeration</span> <span class="identifier">StatusCode</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">enum class</span> <span class="identifier">StatusCode</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">StatusCode</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div id="enumerationSection"><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Members</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+									 
+								</th><th>Member name</th><th>Value</th><th>Description</th></tr><tr><td /><td target="F:Grpc.Core.StatusCode.OK"><span class="selflink">OK</span></td><td>0</td><td>Not an error; returned on success.</td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.Cancelled"><span class="selflink">Cancelled</span></td><td>1</td><td>The operation was cancelled (typically by the caller).</td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.Unknown"><span class="selflink">Unknown</span></td><td>2</td><td>
+            Unknown error.  An example of where this error may be returned is
+            if a Status value received from another address space belongs to
+            an error-space that is not known in this address space.  Also
+            errors raised by APIs that do not return enough error information
+            may be converted to this error.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.InvalidArgument"><span class="selflink">InvalidArgument</span></td><td>3</td><td>
+            Client specified an invalid argument.  Note that this differs
+            from FAILED_PRECONDITION.  INVALID_ARGUMENT indicates arguments
+            that are problematic regardless of the state of the system
+            (e.g., a malformed file name).
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.DeadlineExceeded"><span class="selflink">DeadlineExceeded</span></td><td>4</td><td>
+            Deadline expired before operation could complete.  For operations
+            that change the state of the system, this error may be returned
+            even if the operation has completed successfully.  For example, a
+            successful response from a server could have been delayed long
+            enough for the deadline to expire.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.NotFound"><span class="selflink">NotFound</span></td><td>5</td><td>Some requested entity (e.g., file or directory) was not found.</td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.AlreadyExists"><span class="selflink">AlreadyExists</span></td><td>6</td><td>Some entity that we attempted to create (e.g., file or directory) already exists.</td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.PermissionDenied"><span class="selflink">PermissionDenied</span></td><td>7</td><td>
+            The caller does not have permission to execute the specified
+            operation.  PERMISSION_DENIED must not be used for rejections
+            caused by exhausting some resource (use RESOURCE_EXHAUSTED
+            instead for those errors).  PERMISSION_DENIED must not be
+            used if the caller can not be identified (use UNAUTHENTICATED
+            instead for those errors).
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.Unauthenticated"><span class="selflink">Unauthenticated</span></td><td>16</td><td>The request does not have valid authentication credentials for the operation.</td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.ResourceExhausted"><span class="selflink">ResourceExhausted</span></td><td>8</td><td>
+            Some resource has been exhausted, perhaps a per-user quota, or
+            perhaps the entire file system is out of space.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.FailedPrecondition"><span class="selflink">FailedPrecondition</span></td><td>9</td><td>
+            Operation was rejected because the system is not in a state
+            required for the operation's execution.  For example, directory
+            to be deleted may be non-empty, an rmdir operation is applied to
+            a non-directory, etc.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.Aborted"><span class="selflink">Aborted</span></td><td>10</td><td>
+            The operation was aborted, typically due to a concurrency issue
+            like sequencer check failures, transaction aborts, etc.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.OutOfRange"><span class="selflink">OutOfRange</span></td><td>11</td><td>
+            Operation was attempted past the valid range.  E.g., seeking or
+            reading past end of file.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.Unimplemented"><span class="selflink">Unimplemented</span></td><td>12</td><td>Operation is not implemented or not supported/enabled in this service.</td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.Internal"><span class="selflink">Internal</span></td><td>13</td><td>
+            Internal errors.  Means some invariants expected by underlying
+            system has been broken.  If you see one of these errors,
+            something is very broken.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.Unavailable"><span class="selflink">Unavailable</span></td><td>14</td><td>
+            The service is currently unavailable.  This is a most likely a
+            transient condition and may be corrected by retrying with
+            a backoff.
+            </td></tr><tr><td /><td target="F:Grpc.Core.StatusCode.DataLoss"><span class="selflink">DataLoss</span></td><td>15</td><td>Unrecoverable data loss or corruption.</td></tr></table></div></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_UnaryServerMethod_2.htm b/doc/ref/csharp/html/html/T_Grpc_Core_UnaryServerMethod_2.htm
new file mode 100644
index 0000000000000000000000000000000000000000..f0a32a30158b6af568ae77f762945a20922055c3
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_UnaryServerMethod_2.htm
@@ -0,0 +1,21 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>UnaryServerMethod(TRequest, TResponse) Delegate</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="UnaryServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="Grpc.Core.UnaryServerMethod%3CTRequest%2C TResponse%3E delegate" /><meta name="System.Keywords" content="UnaryServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="System.Keywords" content="Grpc.Core.UnaryServerMethod(Of TRequest%2C TResponse) delegate" /><meta name="Microsoft.Help.F1" content="Grpc.Core.UnaryServerMethod`2" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.UnaryServerMethod`2" /><meta name="Description" content="Server-side handler for unary call." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_UnaryServerMethod_2" /><meta name="guid" content="T_Grpc_Core_UnaryServerMethod_2" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">UnaryServerMethod<span id="LST52BDE5F0_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST52BDE5F0_0?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="typeparameter">TRequest</span>, <span class="typeparameter">TResponse</span><span id="LST52BDE5F0_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST52BDE5F0_1?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script> Delegate</td></tr></table><span class="introStyle"></span><div class="summary">
+            Server-side handler for unary call.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span>&lt;TResponse&gt; <span class="identifier">UnaryServerMethod</span>&lt;TRequest, TResponse&gt;(
+	TRequest <span class="parameter">request</span>,
+	<span class="identifier">ServerCallContext</span> <span class="parameter">context</span>
+)
+<span class="keyword">where</span> TRequest : <span class="keyword">class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">class</span>
+</pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Delegate</span> <span class="keyword">Function</span> <span class="identifier">UnaryServerMethod</span>(<span class="keyword">Of</span> TRequest <span class="keyword">As</span> <span class="keyword">Class</span>, TResponse <span class="keyword">As</span> <span class="keyword">Class</span>) ( 
+	<span class="parameter">request</span> <span class="keyword">As</span> TRequest,
+	<span class="parameter">context</span> <span class="keyword">As</span> <span class="identifier">ServerCallContext</span>
+) <span class="keyword">As</span> <span class="identifier">Task</span>(<span class="keyword">Of</span> TResponse)</pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">generic</span>&lt;<span class="keyword">typename</span> TRequest, <span class="keyword">typename</span> TResponse&gt;
+<span class="keyword">where</span> TRequest : <span class="keyword">ref class</span>
+<span class="keyword">where</span> TResponse : <span class="keyword">ref class</span>
+<span class="keyword">public</span> <span class="keyword">delegate</span> <span class="identifier">Task</span>&lt;TResponse&gt;^ <span class="identifier">UnaryServerMethod</span>(
+	TRequest <span class="parameter">request</span>, 
+	<span class="identifier">ServerCallContext</span>^ <span class="parameter">context</span>
+)</pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">UnaryServerMethod</span> = 
+    <span class="keyword">delegate</span> <span class="keyword">of</span> 
+        <span class="parameter">request</span> : 'TRequest * 
+        <span class="parameter">context</span> : <span class="identifier">ServerCallContext</span> <span class="keyword">-&gt;</span> <span class="identifier">Task</span>&lt;'TResponse&gt;</pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script><h4 class="subHeading">Parameters</h4><dl><dt><span class="parameter">request</span></dt><dd>Type: <span class="selflink"><span class="typeparameter">TRequest</span></span><br /></dd><dt><span class="parameter">context</span></dt><dd>Type: <a href="T_Grpc_Core_ServerCallContext.htm">Grpc.Core<span id="LST52BDE5F0_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST52BDE5F0_2?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>ServerCallContext</a><br /></dd></dl><h4 class="subHeading">Type Parameters</h4><dl><dt><span class="parameter">TRequest</span></dt><dd>Request message type for this method.</dd><dt><span class="parameter">TResponse</span></dt><dd>Response message type for this method.</dd></dl><h4 class="subHeading">Return Value</h4>Type: <a href="http://msdn2.microsoft.com/en-us/library/dd321424" target="_blank">Task</a><span id="LST52BDE5F0_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST52BDE5F0_3?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script><span class="selflink"><span class="typeparameter">TResponse</span></span><span id="LST52BDE5F0_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST52BDE5F0_4?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID2RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..52ddee0058f5a024b662ff5274f2a95d721b2c09
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>AsyncStreamExtensions Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="AsyncStreamExtensions class" /><meta name="System.Keywords" content="Grpc.Core.Utils.AsyncStreamExtensions class" /><meta name="System.Keywords" content="AsyncStreamExtensions class, about AsyncStreamExtensions class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.AsyncStreamExtensions" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Utils.AsyncStreamExtensions" /><meta name="Description" content="Extension methods that simplify work with gRPC streaming calls." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="T_Grpc_Core_Utils_AsyncStreamExtensions" /><meta name="guid" content="T_Grpc_Core_Utils_AsyncStreamExtensions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Class" tocid="T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" title="AsyncStreamExtensions Methods" tocid="Methods_T_Grpc_Core_Utils_AsyncStreamExtensions">AsyncStreamExtensions Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">AsyncStreamExtensions Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Extension methods that simplify work with gRPC streaming calls.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST61118D82_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core.Utils<span id="LST61118D82_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>AsyncStreamExtensions</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">AsyncStreamExtensions</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">&lt;<span class="identifier">ExtensionAttribute</span>&gt;
+<span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">AsyncStreamExtensions</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[<span class="identifier">ExtensionAttribute</span>]
+<span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">AsyncStreamExtensions</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+[&lt;<span class="identifier">ExtensionAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">AsyncStreamExtensions</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">AsyncStreamExtensions</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm">ForEachAsync<span id="LST61118D82_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and executes an async action for each element.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm">ToListAsync<span id="LST61118D82_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script></a></td><td><div class="summary">
+            Reads the entire stream and creates a list containing all the elements read.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm">WriteAllAsync<span id="LST61118D82_6"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_6?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_7"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_7?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(IServerStreamWriter<span id="LST61118D82_8"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_8?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_9"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_9?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LST61118D82_10"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_10?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_11"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_11?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>)</a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm">WriteAllAsync<span id="LST61118D82_12"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_12?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_13"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_13?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(IClientStreamWriter<span id="LST61118D82_14"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_14?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_15"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_15?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, IEnumerable<span id="LST61118D82_16"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_16?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST61118D82_17"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST61118D82_17?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>, Boolean)</a></td><td><div class="summary">
+            Writes all elements from given enumerable to the stream.
+            Completes the stream afterwards unless close = false.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Utils_BenchmarkUtil.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Utils_BenchmarkUtil.htm
new file mode 100644
index 0000000000000000000000000000000000000000..b05566cedffb7c075b6953dd3c67b07d0e5a9180
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Utils_BenchmarkUtil.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>BenchmarkUtil Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="BenchmarkUtil class" /><meta name="System.Keywords" content="Grpc.Core.Utils.BenchmarkUtil class" /><meta name="System.Keywords" content="BenchmarkUtil class, about BenchmarkUtil class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.BenchmarkUtil" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Utils.BenchmarkUtil" /><meta name="Description" content="Utility methods to run microbenchmarks." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="T_Grpc_Core_Utils_BenchmarkUtil" /><meta name="guid" content="T_Grpc_Core_Utils_BenchmarkUtil" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_BenchmarkUtil.htm" title="BenchmarkUtil Class" tocid="T_Grpc_Core_Utils_BenchmarkUtil">BenchmarkUtil Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm" title="BenchmarkUtil Methods" tocid="Methods_T_Grpc_Core_Utils_BenchmarkUtil">BenchmarkUtil Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">BenchmarkUtil Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Utility methods to run microbenchmarks.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST522BADE5_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST522BADE5_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core.Utils<span id="LST522BADE5_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST522BADE5_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>BenchmarkUtil</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">BenchmarkUtil</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">BenchmarkUtil</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">BenchmarkUtil</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">BenchmarkUtil</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">BenchmarkUtil</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm">RunBenchmark</a></td><td><div class="summary">
+            Runs a simple benchmark preceded by warmup phase.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_Utils_Preconditions.htm b/doc/ref/csharp/html/html/T_Grpc_Core_Utils_Preconditions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..0c41403431efe7e0e3a24422221c69d79d1f9952
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_Utils_Preconditions.htm
@@ -0,0 +1,19 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>Preconditions Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="Preconditions class" /><meta name="System.Keywords" content="Grpc.Core.Utils.Preconditions class" /><meta name="System.Keywords" content="Preconditions class, about Preconditions class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.Utils.Preconditions" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.Utils.Preconditions" /><meta name="Description" content="Utility methods to simplify checking preconditions in the code." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core.Utils" /><meta name="file" content="T_Grpc_Core_Utils_Preconditions" /><meta name="guid" content="T_Grpc_Core_Utils_Preconditions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core_Utils.htm" title="Grpc.Core.Utils" tocid="N_Grpc_Core_Utils">Grpc.Core.Utils</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Class" tocid="T_Grpc_Core_Utils_Preconditions">Preconditions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Methods_T_Grpc_Core_Utils_Preconditions.htm" title="Preconditions Methods" tocid="Methods_T_Grpc_Core_Utils_Preconditions">Preconditions Methods</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">Preconditions Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Utility methods to simplify checking preconditions in the code.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST13927049_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13927049_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core.Utils<span id="LST13927049_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13927049_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Preconditions</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">Preconditions</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">Preconditions</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">Preconditions</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">Preconditions</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckArgument.htm">CheckArgument(Boolean)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm">CheckArgument(Boolean, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/3w1b3114" target="_blank">ArgumentException</a> with given message if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm">CheckNotNull<span id="LST13927049_2"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13927049_2?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST13927049_3"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13927049_3?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(T)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm">CheckNotNull<span id="LST13927049_4"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13927049_4?cs=&lt;|vb=(Of |cpp=&lt;|fs=&lt;'|nu=(");</script>T<span id="LST13927049_5"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST13927049_5?cs=&gt;|vb=)|cpp=&gt;|fs=&gt;|nu=)");</script>(T, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/27426hcy" target="_blank">ArgumentNullException</a> if reference is null.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckState.htm">CheckState(Boolean)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> if condition is false.
+            </div></td></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="M_Grpc_Core_Utils_Preconditions_CheckState_1.htm">CheckState(Boolean, String)</a></td><td><div class="summary">
+            Throws <a href="http://msdn2.microsoft.com/en-us/library/2asft85a" target="_blank">InvalidOperationException</a> with given message if condition is false.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core_Utils.htm">Grpc.Core.Utils Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_VersionInfo.htm b/doc/ref/csharp/html/html/T_Grpc_Core_VersionInfo.htm
new file mode 100644
index 0000000000000000000000000000000000000000..a53a4185ab328f06319126ce40c82d13bf63a12f
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_VersionInfo.htm
@@ -0,0 +1,9 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>VersionInfo Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="VersionInfo class" /><meta name="System.Keywords" content="Grpc.Core.VersionInfo class" /><meta name="System.Keywords" content="VersionInfo class, about VersionInfo class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.VersionInfo" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.VersionInfo" /><meta name="Description" content="Provides info about current version of gRPC." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_VersionInfo" /><meta name="guid" content="T_Grpc_Core_VersionInfo" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_VersionInfo.htm" title="VersionInfo Fields" tocid="Fields_T_Grpc_Core_VersionInfo">VersionInfo Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">VersionInfo Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Provides info about current version of gRPC.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LST3FF00A03_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3FF00A03_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LST3FF00A03_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LST3FF00A03_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>VersionInfo</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">static</span> <span class="keyword">class</span> <span class="identifier">VersionInfo</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">NotInheritable</span> <span class="keyword">Class</span> <span class="identifier">VersionInfo</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">VersionInfo</span> <span class="keyword">abstract</span> <span class="keyword">sealed</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">AbstractClassAttribute</span>&gt;]
+[&lt;<span class="identifier">SealedAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">VersionInfo</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">VersionInfo</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_VersionInfo_CurrentVersion.htm">CurrentVersion</a></td><td><div class="summary">
+            Current version of gRPC
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID4RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_WriteFlags.htm b/doc/ref/csharp/html/html/T_Grpc_Core_WriteFlags.htm
new file mode 100644
index 0000000000000000000000000000000000000000..ddd3eed6542e9c5d68715896fe34c4b06479f029
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_WriteFlags.htm
@@ -0,0 +1,15 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteFlags Enumeration</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteFlags enumeration" /><meta name="System.Keywords" content="Grpc.Core.WriteFlags enumeration" /><meta name="System.Keywords" content="BufferHint enumeration member" /><meta name="System.Keywords" content="NoCompress enumeration member" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteFlags" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteFlags.BufferHint" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteFlags.NoCompress" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.WriteFlags" /><meta name="Description" content="Flags for write operations." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_WriteFlags" /><meta name="guid" content="T_Grpc_Core_WriteFlags" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel1" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncClientStreamingCall_2.htm" title="AsyncClientStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncClientStreamingCall_2">AsyncClientStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" tocid="T_Grpc_Core_AsyncDuplexStreamingCall_2">AsyncDuplexStreamingCall(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncServerStreamingCall_1.htm" title="AsyncServerStreamingCall(TResponse) Class" tocid="T_Grpc_Core_AsyncServerStreamingCall_1">AsyncServerStreamingCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_AsyncUnaryCall_1.htm" title="AsyncUnaryCall(TResponse) Class" tocid="T_Grpc_Core_AsyncUnaryCall_1">AsyncUnaryCall(TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallInvocationDetails_2.htm" title="CallInvocationDetails(TRequest, TResponse) Structure" tocid="T_Grpc_Core_CallInvocationDetails_2">CallInvocationDetails(TRequest, TResponse) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_CallOptions.htm" title="CallOptions Structure" tocid="T_Grpc_Core_CallOptions">CallOptions Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Calls.htm" title="Calls Class" tocid="T_Grpc_Core_Calls">Calls Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Channel.htm" title="Channel Class" tocid="T_Grpc_Core_Channel">Channel Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOption.htm" title="ChannelOption Class" tocid="T_Grpc_Core_ChannelOption">ChannelOption Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelOption_OptionType.htm" title="ChannelOption.OptionType Enumeration" tocid="T_Grpc_Core_ChannelOption_OptionType">ChannelOption.OptionType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ChannelOptions.htm" title="ChannelOptions Class" tocid="T_Grpc_Core_ChannelOptions">ChannelOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ChannelState.htm" title="ChannelState Enumeration" tocid="T_Grpc_Core_ChannelState">ChannelState Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ClientBase.htm" title="ClientBase Class" tocid="T_Grpc_Core_ClientBase">ClientBase Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ClientStreamingServerMethod_2.htm" title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ClientStreamingServerMethod_2">ClientStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_CompressionLevel.htm" title="CompressionLevel Enumeration" tocid="T_Grpc_Core_CompressionLevel">CompressionLevel Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationOptions.htm" title="ContextPropagationOptions Class" tocid="T_Grpc_Core_ContextPropagationOptions">ContextPropagationOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ContextPropagationToken.htm" title="ContextPropagationToken Class" tocid="T_Grpc_Core_ContextPropagationToken">ContextPropagationToken Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Credentials.htm" title="Credentials Class" tocid="T_Grpc_Core_Credentials">Credentials Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_DuplexStreamingServerMethod_2.htm" title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_DuplexStreamingServerMethod_2">DuplexStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_GrpcEnvironment.htm" title="GrpcEnvironment Class" tocid="T_Grpc_Core_GrpcEnvironment">GrpcEnvironment Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_HeaderInterceptor.htm" title="HeaderInterceptor Delegate" tocid="T_Grpc_Core_HeaderInterceptor">HeaderInterceptor Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamReader_1.htm" title="IAsyncStreamReader(T) Interface" tocid="T_Grpc_Core_IAsyncStreamReader_1">IAsyncStreamReader(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IAsyncStreamWriter_1.htm" title="IAsyncStreamWriter(T) Interface" tocid="T_Grpc_Core_IAsyncStreamWriter_1">IAsyncStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IClientStreamWriter_1.htm" title="IClientStreamWriter(T) Interface" tocid="T_Grpc_Core_IClientStreamWriter_1">IClientStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IHasWriteOptions.htm" title="IHasWriteOptions Interface" tocid="T_Grpc_Core_IHasWriteOptions">IHasWriteOptions Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IMethod.htm" title="IMethod Interface" tocid="T_Grpc_Core_IMethod">IMethod Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_IServerStreamWriter_1.htm" title="IServerStreamWriter(T) Interface" tocid="T_Grpc_Core_IServerStreamWriter_1">IServerStreamWriter(T) Interface</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_KeyCertificatePair.htm" title="KeyCertificatePair Class" tocid="T_Grpc_Core_KeyCertificatePair">KeyCertificatePair Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshaller_1.htm" title="Marshaller(T) Structure" tocid="T_Grpc_Core_Marshaller_1">Marshaller(T) Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Marshallers.htm" title="Marshallers Class" tocid="T_Grpc_Core_Marshallers">Marshallers Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata.htm" title="Metadata Class" tocid="T_Grpc_Core_Metadata">Metadata Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Metadata_Entry.htm" title="Metadata.Entry Structure" tocid="T_Grpc_Core_Metadata_Entry">Metadata.Entry Structure</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Method_2.htm" title="Method(TRequest, TResponse) Class" tocid="T_Grpc_Core_Method_2">Method(TRequest, TResponse) Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_MethodType.htm" title="MethodType Enumeration" tocid="T_Grpc_Core_MethodType">MethodType Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_RpcException.htm" title="RpcException Class" tocid="T_Grpc_Core_RpcException">RpcException Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server.htm" title="Server Class" tocid="T_Grpc_Core_Server">Server Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServerPortCollection.htm" title="Server.ServerPortCollection Class" tocid="T_Grpc_Core_Server_ServerPortCollection">Server.ServerPortCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Server_ServiceDefinitionCollection.htm" title="Server.ServiceDefinitionCollection Class" tocid="T_Grpc_Core_Server_ServiceDefinitionCollection">Server.ServiceDefinitionCollection Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCallContext.htm" title="ServerCallContext Class" tocid="T_Grpc_Core_ServerCallContext">ServerCallContext Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerCredentials.htm" title="ServerCredentials Class" tocid="T_Grpc_Core_ServerCredentials">ServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerPort.htm" title="ServerPort Class" tocid="T_Grpc_Core_ServerPort">ServerPort Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition.htm" title="ServerServiceDefinition Class" tocid="T_Grpc_Core_ServerServiceDefinition">ServerServiceDefinition Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_ServerServiceDefinition_Builder.htm" title="ServerServiceDefinition.Builder Class" tocid="T_Grpc_Core_ServerServiceDefinition_Builder">ServerServiceDefinition.Builder Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_ServerStreamingServerMethod_2.htm" title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_ServerStreamingServerMethod_2">ServerStreamingServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslCredentials.htm" title="SslCredentials Class" tocid="T_Grpc_Core_SslCredentials">SslCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_SslServerCredentials.htm" title="SslServerCredentials Class" tocid="T_Grpc_Core_SslServerCredentials">SslServerCredentials Class</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_Status.htm" title="Status Structure" tocid="T_Grpc_Core_Status">Status Structure</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_StatusCode.htm" title="StatusCode Enumeration" tocid="T_Grpc_Core_StatusCode">StatusCode Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_UnaryServerMethod_2.htm" title="UnaryServerMethod(TRequest, TResponse) Delegate" tocid="T_Grpc_Core_UnaryServerMethod_2">UnaryServerMethod(TRequest, TResponse) Delegate</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_VersionInfo.htm" title="VersionInfo Class" tocid="T_Grpc_Core_VersionInfo">VersionInfo Class</a></div><div class="toclevel2 current" data-toclevel="2"><a data-tochassubtree="false" href="T_Grpc_Core_WriteFlags.htm" title="WriteFlags Enumeration" tocid="T_Grpc_Core_WriteFlags">WriteFlags Enumeration</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteFlags Enumeration</td></tr></table><span class="introStyle"></span><div class="summary">
+            Flags for write operations.
+            </div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID1RB')" onkeypress="SectionExpandCollapse_CheckKey('ID1RB', event)" tabindex="0"><img id="ID1RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID1RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID0EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cs','1','4');return false;">C#</a></div><div id="ID0EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','vb','2','4');return false;">VB</a></div><div id="ID0EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','cpp','3','4');return false;">C++</a></div><div id="ID0EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID0EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID0EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID0EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID0EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve">[<span class="identifier">FlagsAttribute</span>]
+<span class="keyword">public</span> <span class="keyword">enum</span> <span class="identifier">WriteFlags</span></pre></div><div id="ID0EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">&lt;<span class="identifier">FlagsAttribute</span>&gt;
+<span class="keyword">Public</span> <span class="keyword">Enumeration</span> <span class="identifier">WriteFlags</span></pre></div><div id="ID0EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[<span class="identifier">FlagsAttribute</span>]
+<span class="keyword">public</span> <span class="keyword">enum class</span> <span class="identifier">WriteFlags</span></pre></div><div id="ID0EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve">[&lt;<span class="identifier">FlagsAttribute</span>&gt;]
+<span class="keyword">type</span> <span class="identifier">WriteFlags</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID0EDCA");</script></div><div id="enumerationSection"><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Members</span></div><div id="ID2RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+									 
+								</th><th>Member name</th><th>Value</th><th>Description</th></tr><tr><td /><td target="F:Grpc.Core.WriteFlags.BufferHint"><span class="selflink">BufferHint</span></td><td>1</td><td>
+            Hint that the write may be buffered and need not go out on the wire immediately.
+            gRPC is free to buffer the message until the next non-buffered
+            write, or until write stream completion, but it need not buffer completely or at all.
+            </td></tr><tr><td /><td target="F:Grpc.Core.WriteFlags.NoCompress"><span class="selflink">NoCompress</span></td><td>2</td><td>
+            Force compression to be disabled for a particular write.
+            </td></tr></table></div></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID3RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/html/T_Grpc_Core_WriteOptions.htm b/doc/ref/csharp/html/html/T_Grpc_Core_WriteOptions.htm
new file mode 100644
index 0000000000000000000000000000000000000000..94460aa93b5973c4ffaf227faab6fd45a7619786
--- /dev/null
+++ b/doc/ref/csharp/html/html/T_Grpc_Core_WriteOptions.htm
@@ -0,0 +1,17 @@
+<html><head><meta http-equiv="X-UA-Compatible" content="IE=edge" /><link rel="shortcut icon" href="../icons/favicon.ico" /><link rel="stylesheet" type="text/css" href="../styles/branding.css" /><link rel="stylesheet" type="text/css" href="../styles/branding-en-US.css" /><script type="text/javascript" src="../scripts/branding.js"> </script><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><title>WriteOptions Class</title><meta name="Language" content="en-us" /><meta name="System.Keywords" content="WriteOptions class" /><meta name="System.Keywords" content="Grpc.Core.WriteOptions class" /><meta name="System.Keywords" content="WriteOptions class, about WriteOptions class" /><meta name="Microsoft.Help.F1" content="Grpc.Core.WriteOptions" /><meta name="Microsoft.Help.Id" content="T:Grpc.Core.WriteOptions" /><meta name="Description" content="Options for write operations." /><meta name="Microsoft.Help.ContentType" content="Reference" /><meta name="BrandingAware" content="true" /><meta name="container" content="Grpc.Core" /><meta name="file" content="T_Grpc_Core_WriteOptions" /><meta name="guid" content="T_Grpc_Core_WriteOptions" /><link rel="stylesheet" type="text/css" href="../styles/branding-Website.css" /><script type="text/javascript" src="../scripts/jquery-1.11.0.min.js"></script><script type="text/javascript" src="../scripts/branding-Website.js"></script></head><body onload="OnLoad('cs')"><input type="hidden" id="userDataCache" class="userDataStyle" /><div class="pageHeader" id="PageHeader">gRPC C#<form id="SearchForm" method="get" action="#" onsubmit="javascript:TransferToSearchPage(); return false;"><input id="SearchTextBox" type="text" maxlength="200" /><button id="SearchButton" type="submit"></button></form></div><div class="pageBody"><div class="leftNav" id="leftNav"><div id="tocNav"><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="gRPC C#" tocid="roottoc">gRPC C#</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="R_Project_Documentation.htm" title="Namespaces" tocid="R_Project_Documentation">Namespaces</a></div><div class="toclevel0" data-toclevel="0"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="N_Grpc_Core.htm" title="Grpc.Core" tocid="N_Grpc_Core">Grpc.Core</a></div><div class="toclevel1 current" data-toclevel="1" data-childrenloaded="true"><a class="tocExpanded" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="T_Grpc_Core_WriteOptions.htm" title="WriteOptions Class" tocid="T_Grpc_Core_WriteOptions">WriteOptions Class</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="M_Grpc_Core_WriteOptions__ctor.htm" title="WriteOptions Constructor " tocid="M_Grpc_Core_WriteOptions__ctor">WriteOptions Constructor </a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Properties_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Properties" tocid="Properties_T_Grpc_Core_WriteOptions">WriteOptions Properties</a></div><div class="toclevel2" data-toclevel="2"><a data-tochassubtree="false" href="Methods_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Methods" tocid="Methods_T_Grpc_Core_WriteOptions">WriteOptions Methods</a></div><div class="toclevel2" data-toclevel="2"><a class="tocCollapsed" onclick="javascript: Toggle(this);" href="#!" /><a data-tochassubtree="true" href="Fields_T_Grpc_Core_WriteOptions.htm" title="WriteOptions Fields" tocid="Fields_T_Grpc_Core_WriteOptions">WriteOptions Fields</a></div></div><div id="tocResizableEW" onmousedown="OnMouseDown(event);"></div><div id="TocResize" class="tocResize"><img id="ResizeImageIncrease" src="../icons/TocOpen.gif" onclick="OnIncreaseToc()" alt="Click or drag to resize" title="Click or drag to resize" /><img id="ResizeImageReset" src="../icons/TocClose.gif" style="display:none" onclick="OnResetToc()" alt="Click or drag to resize" title="Click or drag to resize" /></div></div><div class="topicContent" id="TopicContent"><table class="titleTable"><tr><td class="titleColumn">WriteOptions Class</td></tr></table><span class="introStyle"></span><div class="summary">
+            Options for write operations.
+            </div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID0RB')" onkeypress="SectionExpandCollapse_CheckKey('ID0RB', event)" tabindex="0"><img id="ID0RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Inheritance Hierarchy</span></div><div id="ID0RBSection" class="collapsibleSection"><a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">System<span id="LSTE5597B5E_0"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE5597B5E_0?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>Object</a><br />  <span class="selflink">Grpc.Core<span id="LSTE5597B5E_1"></span><script type="text/javascript">AddLanguageSpecificTextSet("LSTE5597B5E_1?cs=.|vb=.|cpp=::|nu=.|fs=.");</script>WriteOptions</span><br /></div><p> </p><strong>Namespace:</strong> <a href="N_Grpc_Core.htm">Grpc.Core</a><br /><strong>Assembly:</strong> Grpc.Core (in Grpc.Core.dll) Version: 0.6.1.0<div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID2RB')" onkeypress="SectionExpandCollapse_CheckKey('ID2RB', event)" tabindex="0"><img id="ID2RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Syntax</span></div><div id="ID2RBSection" class="collapsibleSection"><div class="codeSnippetContainer"><div class="codeSnippetContainerTabs"><div id="ID1EDCA_tab1" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cs','1','4');return false;">C#</a></div><div id="ID1EDCA_tab2" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','vb','2','4');return false;">VB</a></div><div id="ID1EDCA_tab3" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','cpp','3','4');return false;">C++</a></div><div id="ID1EDCA_tab4" class="codeSnippetContainerTab"><a href="#" onclick="javascript:ChangeTab('ID1EDCA','fs','4','4');return false;">F#</a></div></div><div class="codeSnippetContainerCodeContainer"><div class="codeSnippetToolBar"><div class="codeSnippetToolBarText"><a id="ID1EDCA_copyCode" href="#" onclick="javascript:CopyToClipboard('ID1EDCA');return false;" title="Copy">Copy</a></div></div><div id="ID1EDCA_code_Div1" class="codeSnippetContainerCode" style="display: block"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">class</span> <span class="identifier">WriteOptions</span></pre></div><div id="ID1EDCA_code_Div2" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">Public</span> <span class="keyword">Class</span> <span class="identifier">WriteOptions</span></pre></div><div id="ID1EDCA_code_Div3" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">public</span> <span class="keyword">ref class</span> <span class="identifier">WriteOptions</span></pre></div><div id="ID1EDCA_code_Div4" class="codeSnippetContainerCode" style="display: none"><pre xml:space="preserve"><span class="keyword">type</span> <span class="identifier">WriteOptions</span> =  <span class="keyword">class</span> <span class="keyword">end</span></pre></div></div></div><script type="text/javascript">AddLanguageTabSet("ID1EDCA");</script></div><p>The <span class="selflink">WriteOptions</span> type exposes the following members.</p><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID3RB')" onkeypress="SectionExpandCollapse_CheckKey('ID3RB', event)" tabindex="0"><img id="ID3RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Constructors</span></div><div id="ID3RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="M_Grpc_Core_WriteOptions__ctor.htm">WriteOptions</a></td><td><div class="summary">
+            Initializes a new instance of <span class="code">WriteOptions</span> class.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID4RB')" onkeypress="SectionExpandCollapse_CheckKey('ID4RB', event)" tabindex="0"><img id="ID4RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Properties</span></div><div id="ID4RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;declared;notNetfw;"><td><img src="../icons/pubproperty.gif" alt="Public property" title="Public property" /></td><td><a href="P_Grpc_Core_WriteOptions_Flags.htm">Flags</a></td><td><div class="summary">
+            Gets the write flags.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID5RB')" onkeypress="SectionExpandCollapse_CheckKey('ID5RB', event)" tabindex="0"><img id="ID5RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Methods</span></div><div id="ID5RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/bsc2ak47" target="_blank">Equals</a></td><td><div class="summary">Determines whether the specified object is equal to the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/4k87zsw7" target="_blank">Finalize</a></td><td><div class="summary">Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/zdee4b3y" target="_blank">GetHashCode</a></td><td><div class="summary">Serves as the default hash function. </div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/dfwy45w9" target="_blank">GetType</a></td><td><div class="summary">Gets the <a href="http://msdn2.microsoft.com/en-us/library/42892f65" target="_blank">Type</a> of the current instance.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="protected;inherited;notNetfw;"><td><img src="../icons/protmethod.gif" alt="Protected method" title="Protected method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/57ctke0a" target="_blank">MemberwiseClone</a></td><td><div class="summary">Creates a shallow copy of the current <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr><tr data="public;inherited;notNetfw;"><td><img src="../icons/pubmethod.gif" alt="Public method" title="Public method" /></td><td><a href="http://msdn2.microsoft.com/en-us/library/7bxwbwt2" target="_blank">ToString</a></td><td><div class="summary">Returns a string that represents the current object.</div> (Inherited from <a href="http://msdn2.microsoft.com/en-us/library/e5kfa45b" target="_blank">Object</a>.)</td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID6RB')" onkeypress="SectionExpandCollapse_CheckKey('ID6RB', event)" tabindex="0"><img id="ID6RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />Fields</span></div><div id="ID6RBSection" class="collapsibleSection"><table id="memberList" class="members"><tr><th class="iconColumn">
+								 
+							</th><th>Name</th><th>Description</th></tr><tr data="public;static;declared;notNetfw;"><td><img src="../icons/pubfield.gif" alt="Public field" title="Public field" /><img src="../icons/static.gif" alt="Static member" title="Static member" /></td><td><a href="F_Grpc_Core_WriteOptions_Default.htm">Default</a></td><td><div class="summary">
+            Default write options.
+            </div></td></tr></table><a href="#PageHeader">Top</a></div><div class="collapsibleAreaRegion" id="seeAlsoSection"><span class="collapsibleRegionTitle" onclick="SectionExpandCollapse('ID7RB')" onkeypress="SectionExpandCollapse_CheckKey('ID7RB', event)" tabindex="0"><img id="ID7RBToggle" class="collapseToggle" src="../icons/SectionExpanded.png" />See Also</span></div><div id="ID7RBSection" class="collapsibleSection"><h4 class="subHeading">Reference</h4><div class="seeAlsoStyle"><a href="N_Grpc_Core.htm">Grpc.Core Namespace</a></div></div></div></div><div id="pageFooter" class="pageFooter"> </div></body></html>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/icons/AlertCaution.png b/doc/ref/csharp/html/icons/AlertCaution.png
new file mode 100644
index 0000000000000000000000000000000000000000..78f246f047efee82e1ee0b64f1adbef606253054
Binary files /dev/null and b/doc/ref/csharp/html/icons/AlertCaution.png differ
diff --git a/doc/ref/csharp/html/icons/AlertNote.png b/doc/ref/csharp/html/icons/AlertNote.png
new file mode 100644
index 0000000000000000000000000000000000000000..0ab92b66aa6ba6ba29e37046059c5314b4971341
Binary files /dev/null and b/doc/ref/csharp/html/icons/AlertNote.png differ
diff --git a/doc/ref/csharp/html/icons/AlertSecurity.png b/doc/ref/csharp/html/icons/AlertSecurity.png
new file mode 100644
index 0000000000000000000000000000000000000000..d40fcefc440ed3138f80d57824ddc750c4e2a4eb
Binary files /dev/null and b/doc/ref/csharp/html/icons/AlertSecurity.png differ
diff --git a/doc/ref/csharp/html/icons/CFW.gif b/doc/ref/csharp/html/icons/CFW.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cbcabf1b2d1322c6e205b1ff5f5ab17a4565522d
Binary files /dev/null and b/doc/ref/csharp/html/icons/CFW.gif differ
diff --git a/doc/ref/csharp/html/icons/CodeExample.png b/doc/ref/csharp/html/icons/CodeExample.png
new file mode 100644
index 0000000000000000000000000000000000000000..a3b9fba4cc5f29460d711dddb32b79b85783af9a
Binary files /dev/null and b/doc/ref/csharp/html/icons/CodeExample.png differ
diff --git a/doc/ref/csharp/html/icons/Search.png b/doc/ref/csharp/html/icons/Search.png
new file mode 100644
index 0000000000000000000000000000000000000000..42165b6d64c2ad706179b7eaa0485caa089e6ed9
Binary files /dev/null and b/doc/ref/csharp/html/icons/Search.png differ
diff --git a/doc/ref/csharp/html/icons/SectionCollapsed.png b/doc/ref/csharp/html/icons/SectionCollapsed.png
new file mode 100644
index 0000000000000000000000000000000000000000..8ded1ebc6b03328520aac9416ea15f07e63809a8
Binary files /dev/null and b/doc/ref/csharp/html/icons/SectionCollapsed.png differ
diff --git a/doc/ref/csharp/html/icons/SectionExpanded.png b/doc/ref/csharp/html/icons/SectionExpanded.png
new file mode 100644
index 0000000000000000000000000000000000000000..b693921cc92c2b00c06b842c8d098ea63afc1cfc
Binary files /dev/null and b/doc/ref/csharp/html/icons/SectionExpanded.png differ
diff --git a/doc/ref/csharp/html/icons/TocClose.gif b/doc/ref/csharp/html/icons/TocClose.gif
new file mode 100644
index 0000000000000000000000000000000000000000..e6d7b5edcc237dc7d59b4a42910a4abab459c94e
Binary files /dev/null and b/doc/ref/csharp/html/icons/TocClose.gif differ
diff --git a/doc/ref/csharp/html/icons/TocCollapsed.gif b/doc/ref/csharp/html/icons/TocCollapsed.gif
new file mode 100644
index 0000000000000000000000000000000000000000..108d492386d7ee4cb692637beff6c88c59d52086
Binary files /dev/null and b/doc/ref/csharp/html/icons/TocCollapsed.gif differ
diff --git a/doc/ref/csharp/html/icons/TocExpanded.gif b/doc/ref/csharp/html/icons/TocExpanded.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f774d9bb6589737768a8bf788046a8bbe53ca902
Binary files /dev/null and b/doc/ref/csharp/html/icons/TocExpanded.gif differ
diff --git a/doc/ref/csharp/html/icons/TocOpen.gif b/doc/ref/csharp/html/icons/TocOpen.gif
new file mode 100644
index 0000000000000000000000000000000000000000..4992a98a2b838039c1920ceba85b67607a22770f
Binary files /dev/null and b/doc/ref/csharp/html/icons/TocOpen.gif differ
diff --git a/doc/ref/csharp/html/icons/favicon.ico b/doc/ref/csharp/html/icons/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..2b9963f814281f0b1b7bb661be8d579191b59a42
Binary files /dev/null and b/doc/ref/csharp/html/icons/favicon.ico differ
diff --git a/doc/ref/csharp/html/icons/privclass.gif b/doc/ref/csharp/html/icons/privclass.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0939694ce08ad44508f6f017b68e46f0f22377b9
Binary files /dev/null and b/doc/ref/csharp/html/icons/privclass.gif differ
diff --git a/doc/ref/csharp/html/icons/privdelegate.gif b/doc/ref/csharp/html/icons/privdelegate.gif
new file mode 100644
index 0000000000000000000000000000000000000000..d3aa8a65ef5277c6682f106de956da036c50d363
Binary files /dev/null and b/doc/ref/csharp/html/icons/privdelegate.gif differ
diff --git a/doc/ref/csharp/html/icons/privenumeration.gif b/doc/ref/csharp/html/icons/privenumeration.gif
new file mode 100644
index 0000000000000000000000000000000000000000..47f387ec2bf4ca4d6b1381cbe8c843912b6c616a
Binary files /dev/null and b/doc/ref/csharp/html/icons/privenumeration.gif differ
diff --git a/doc/ref/csharp/html/icons/privevent.gif b/doc/ref/csharp/html/icons/privevent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..30db46df766c1b49bf86b168eaae03052ce8f292
Binary files /dev/null and b/doc/ref/csharp/html/icons/privevent.gif differ
diff --git a/doc/ref/csharp/html/icons/privextension.gif b/doc/ref/csharp/html/icons/privextension.gif
new file mode 100644
index 0000000000000000000000000000000000000000..51dd267f0f7fa11a657ef51a69cb9159ced8775f
Binary files /dev/null and b/doc/ref/csharp/html/icons/privextension.gif differ
diff --git a/doc/ref/csharp/html/icons/privfield.gif b/doc/ref/csharp/html/icons/privfield.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cbf70f7a3fc3875ee62d9a4dacf3a088e60f2eff
Binary files /dev/null and b/doc/ref/csharp/html/icons/privfield.gif differ
diff --git a/doc/ref/csharp/html/icons/privinterface.gif b/doc/ref/csharp/html/icons/privinterface.gif
new file mode 100644
index 0000000000000000000000000000000000000000..f3b7950adc741c7b4085da8ab52167435bec317c
Binary files /dev/null and b/doc/ref/csharp/html/icons/privinterface.gif differ
diff --git a/doc/ref/csharp/html/icons/privmethod.gif b/doc/ref/csharp/html/icons/privmethod.gif
new file mode 100644
index 0000000000000000000000000000000000000000..71f882264291eb056bc55dce1c73f9b7cae1aa4a
Binary files /dev/null and b/doc/ref/csharp/html/icons/privmethod.gif differ
diff --git a/doc/ref/csharp/html/icons/privproperty.gif b/doc/ref/csharp/html/icons/privproperty.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b1e8074654b3fc0601b0302f1be7b39f5bf5eb7b
Binary files /dev/null and b/doc/ref/csharp/html/icons/privproperty.gif differ
diff --git a/doc/ref/csharp/html/icons/privstructure.gif b/doc/ref/csharp/html/icons/privstructure.gif
new file mode 100644
index 0000000000000000000000000000000000000000..ed6d1ef68f8736e5c05137be2af0ff7714ddb85b
Binary files /dev/null and b/doc/ref/csharp/html/icons/privstructure.gif differ
diff --git a/doc/ref/csharp/html/icons/protclass.gif b/doc/ref/csharp/html/icons/protclass.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0f9294292a9b5f94a281de7657b5555d06bb4a96
Binary files /dev/null and b/doc/ref/csharp/html/icons/protclass.gif differ
diff --git a/doc/ref/csharp/html/icons/protdelegate.gif b/doc/ref/csharp/html/icons/protdelegate.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b209f2d816d78188dbcd93907917d7a0ef34eaa9
Binary files /dev/null and b/doc/ref/csharp/html/icons/protdelegate.gif differ
diff --git a/doc/ref/csharp/html/icons/protenumeration.gif b/doc/ref/csharp/html/icons/protenumeration.gif
new file mode 100644
index 0000000000000000000000000000000000000000..cc96bb635982abc9d306f219ebdd71d29f95757c
Binary files /dev/null and b/doc/ref/csharp/html/icons/protenumeration.gif differ
diff --git a/doc/ref/csharp/html/icons/protevent.gif b/doc/ref/csharp/html/icons/protevent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0e510b272cfca80656561d1d699dc644a4bce266
Binary files /dev/null and b/doc/ref/csharp/html/icons/protevent.gif differ
diff --git a/doc/ref/csharp/html/icons/protextension.gif b/doc/ref/csharp/html/icons/protextension.gif
new file mode 100644
index 0000000000000000000000000000000000000000..dcd07f5e1a673de3120e3f82e6f8c24f8bcd723b
Binary files /dev/null and b/doc/ref/csharp/html/icons/protextension.gif differ
diff --git a/doc/ref/csharp/html/icons/protfield.gif b/doc/ref/csharp/html/icons/protfield.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9ae6833e0821dae813c941500d1e12a88c7c334f
Binary files /dev/null and b/doc/ref/csharp/html/icons/protfield.gif differ
diff --git a/doc/ref/csharp/html/icons/protinterface.gif b/doc/ref/csharp/html/icons/protinterface.gif
new file mode 100644
index 0000000000000000000000000000000000000000..a1b96d2c6a0b681cb6d65d30f8e212a3c2d29081
Binary files /dev/null and b/doc/ref/csharp/html/icons/protinterface.gif differ
diff --git a/doc/ref/csharp/html/icons/protmethod.gif b/doc/ref/csharp/html/icons/protmethod.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2bc946873495112cc5b27bf66ea0d10ca8f30367
Binary files /dev/null and b/doc/ref/csharp/html/icons/protmethod.gif differ
diff --git a/doc/ref/csharp/html/icons/protoperator.gif b/doc/ref/csharp/html/icons/protoperator.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2cb75ab8b05d4b8d65401c5270ae31836ce04f9b
Binary files /dev/null and b/doc/ref/csharp/html/icons/protoperator.gif differ
diff --git a/doc/ref/csharp/html/icons/protproperty.gif b/doc/ref/csharp/html/icons/protproperty.gif
new file mode 100644
index 0000000000000000000000000000000000000000..55473d16e1321bc3e4cbcb5a165f51a55f9f07a0
Binary files /dev/null and b/doc/ref/csharp/html/icons/protproperty.gif differ
diff --git a/doc/ref/csharp/html/icons/protstructure.gif b/doc/ref/csharp/html/icons/protstructure.gif
new file mode 100644
index 0000000000000000000000000000000000000000..af356a1db0b8e8821d2f6c94734b98354875e85d
Binary files /dev/null and b/doc/ref/csharp/html/icons/protstructure.gif differ
diff --git a/doc/ref/csharp/html/icons/pubclass.gif b/doc/ref/csharp/html/icons/pubclass.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1a968ab633207f47ec5e3130ec676f0d43598bb0
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubclass.gif differ
diff --git a/doc/ref/csharp/html/icons/pubdelegate.gif b/doc/ref/csharp/html/icons/pubdelegate.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0a43eb261adccddee2206769150a9e2d964ed136
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubdelegate.gif differ
diff --git a/doc/ref/csharp/html/icons/pubenumeration.gif b/doc/ref/csharp/html/icons/pubenumeration.gif
new file mode 100644
index 0000000000000000000000000000000000000000..46888adef937f09868b1aff485010ad847625183
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubenumeration.gif differ
diff --git a/doc/ref/csharp/html/icons/pubevent.gif b/doc/ref/csharp/html/icons/pubevent.gif
new file mode 100644
index 0000000000000000000000000000000000000000..b9226da8b49c88296ed4a10835b0b69212431473
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubevent.gif differ
diff --git a/doc/ref/csharp/html/icons/pubextension.gif b/doc/ref/csharp/html/icons/pubextension.gif
new file mode 100644
index 0000000000000000000000000000000000000000..6262d1cca8a4286063ae8f168488a1d7c8587dcc
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubextension.gif differ
diff --git a/doc/ref/csharp/html/icons/pubfield.gif b/doc/ref/csharp/html/icons/pubfield.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5aed17576f4493ccfdb12f7a8a55fa2cbd74041c
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubfield.gif differ
diff --git a/doc/ref/csharp/html/icons/pubinterface.gif b/doc/ref/csharp/html/icons/pubinterface.gif
new file mode 100644
index 0000000000000000000000000000000000000000..c38a4c46a9a7603bc498664c294c7c06a713e555
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubinterface.gif differ
diff --git a/doc/ref/csharp/html/icons/pubmethod.gif b/doc/ref/csharp/html/icons/pubmethod.gif
new file mode 100644
index 0000000000000000000000000000000000000000..2c72988f50ab32eba45ccf5e52b5807c4a7ffa1b
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubmethod.gif differ
diff --git a/doc/ref/csharp/html/icons/puboperator.gif b/doc/ref/csharp/html/icons/puboperator.gif
new file mode 100644
index 0000000000000000000000000000000000000000..0ebe10a7ec532625741cc8668b1126f2553cdc9c
Binary files /dev/null and b/doc/ref/csharp/html/icons/puboperator.gif differ
diff --git a/doc/ref/csharp/html/icons/pubproperty.gif b/doc/ref/csharp/html/icons/pubproperty.gif
new file mode 100644
index 0000000000000000000000000000000000000000..dfad7b43006984b0d27846a9c6d23d9bfb94ec95
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubproperty.gif differ
diff --git a/doc/ref/csharp/html/icons/pubstructure.gif b/doc/ref/csharp/html/icons/pubstructure.gif
new file mode 100644
index 0000000000000000000000000000000000000000..1344416abc3801850d955fb78969243e32976d9d
Binary files /dev/null and b/doc/ref/csharp/html/icons/pubstructure.gif differ
diff --git a/doc/ref/csharp/html/icons/slMobile.gif b/doc/ref/csharp/html/icons/slMobile.gif
new file mode 100644
index 0000000000000000000000000000000000000000..5edc31f94c61a7a50c3285ef00dcbe86e8690974
Binary files /dev/null and b/doc/ref/csharp/html/icons/slMobile.gif differ
diff --git a/doc/ref/csharp/html/icons/static.gif b/doc/ref/csharp/html/icons/static.gif
new file mode 100644
index 0000000000000000000000000000000000000000..33723a92be0a7b2b9fc8057fb6f9a2a3ee729a7e
Binary files /dev/null and b/doc/ref/csharp/html/icons/static.gif differ
diff --git a/doc/ref/csharp/html/icons/xna.gif b/doc/ref/csharp/html/icons/xna.gif
new file mode 100644
index 0000000000000000000000000000000000000000..9e6a9d4bd9ecdc3baf35f6c5a0266e74229bd901
Binary files /dev/null and b/doc/ref/csharp/html/icons/xna.gif differ
diff --git a/doc/ref/csharp/html/index.html b/doc/ref/csharp/html/index.html
new file mode 100644
index 0000000000000000000000000000000000000000..c7d36cc3c3cbbad34c2b7ca0f944a887280f9f09
--- /dev/null
+++ b/doc/ref/csharp/html/index.html
@@ -0,0 +1,14 @@
+<!DOCTYPE html>
+<html lang="en-US">
+<head>
+	<meta charset="UTF-8">
+	<meta http-equiv="refresh" content="1;url=html/R_Project_Documentation.htm">
+	<script type="text/javascript">
+		window.location.replace("html/R_Project_Documentation.htm")
+	</script>
+	<title>gRPC C# - Redirect</title>
+</head>
+<body>
+	<p>If you are not redirected automatically, follow this link to the <a href="html/R_Project_Documentation.htm">default topic</a>.</p>
+</body>
+</html>
diff --git a/doc/ref/csharp/html/scripts/branding-Website.js b/doc/ref/csharp/html/scripts/branding-Website.js
new file mode 100644
index 0000000000000000000000000000000000000000..06ab9808ccc2df7296b1f9e8961da7586df5103f
--- /dev/null
+++ b/doc/ref/csharp/html/scripts/branding-Website.js
@@ -0,0 +1,624 @@
+//===============================================================================================================
+// System  : Sandcastle Help File Builder
+// File    : branding-Website.js
+// Author  : Eric Woodruff  (Eric@EWoodruff.us)
+// Updated : 03/04/2015
+// Note    : Copyright 2014-2015, Eric Woodruff, All rights reserved
+//           Portions Copyright 2014 Sam Harwell, All rights reserved
+//
+// This file contains the methods necessary to implement the lightweight TOC and search functionality.
+//
+// This code is published under the Microsoft Public License (Ms-PL).  A copy of the license should be
+// distributed with the code.  It can also be found at the project website: https://GitHub.com/EWSoftware/SHFB.  This
+// notice, the author's name, and all copyright notices must remain intact in all applications, documentation,
+// and source files.
+//
+//    Date     Who  Comments
+// ==============================================================================================================
+// 05/04/2014  EFW  Created the code based on a combination of the lightweight TOC code from Sam Harwell and
+//                  the existing search code from SHFB.
+//===============================================================================================================
+
+// Width of the TOC
+var tocWidth;
+
+// Search method (0 = To be determined, 1 = ASPX, 2 = PHP, anything else = client-side script
+var searchMethod = 0;
+
+// Table of contents script
+
+// Initialize the TOC by restoring its width from the cookie if present
+function InitializeToc()
+{
+    tocWidth = parseInt(GetCookie("TocWidth", "280"));
+    ResizeToc();
+    $(window).resize(SetNavHeight)
+}
+
+function SetNavHeight()
+{
+    $leftNav = $("#leftNav")
+    $topicContent = $("#TopicContent")
+    leftNavPadding = $leftNav.outerHeight() - $leftNav.height()
+    contentPadding = $topicContent.outerHeight() - $topicContent.height()
+    // want outer height of left navigation div to match outer height of content
+    leftNavHeight = $topicContent.outerHeight() - leftNavPadding
+    $leftNav.css("min-height", leftNavHeight + "px")
+}
+
+// Increase the TOC width
+function OnIncreaseToc()
+{
+    if(tocWidth < 1)
+        tocWidth = 280;
+    else
+        tocWidth += 100;
+
+    if(tocWidth > 680)
+        tocWidth = 0;
+
+    ResizeToc();
+    SetCookie("TocWidth", tocWidth);
+}
+
+// Reset the TOC to its default width
+function OnResetToc()
+{
+    tocWidth = 0;
+
+    ResizeToc();
+    SetCookie("TocWidth", tocWidth);
+}
+
+// Resize the TOC width
+function ResizeToc()
+{
+    var toc = document.getElementById("leftNav");
+
+    if(toc)
+    {
+        // Set TOC width
+        toc.style.width = tocWidth + "px";
+
+        var leftNavPadding = 10;
+
+        document.getElementById("TopicContent").style.marginLeft = (tocWidth + leftNavPadding) + "px";
+
+        // Position images
+        document.getElementById("TocResize").style.left = (tocWidth + leftNavPadding) + "px";
+
+        // Hide/show increase TOC width image
+        document.getElementById("ResizeImageIncrease").style.display = (tocWidth >= 680) ? "none" : "";
+
+        // Hide/show reset TOC width image
+        document.getElementById("ResizeImageReset").style.display = (tocWidth < 680) ? "none" : "";
+    }
+
+    SetNavHeight()
+}
+
+// Toggle a TOC entry between its collapsed and expanded state
+function Toggle(item)
+{
+    var isExpanded = $(item).hasClass("tocExpanded");
+
+    $(item).toggleClass("tocExpanded tocCollapsed");
+
+    if(isExpanded)
+    {
+        Collapse($(item).parent());
+    }
+    else
+    {
+        var childrenLoaded = $(item).parent().attr("data-childrenloaded");
+
+        if(childrenLoaded)
+        {
+            Expand($(item).parent());
+        }
+        else
+        {
+            var tocid = $(item).next().attr("tocid");
+
+            $.ajax({
+                url: "../toc/" + tocid + ".xml",
+                async: true,
+                dataType: "xml",
+                success: function(data)
+                {
+                    BuildChildren($(item).parent(), data);
+                }
+            });
+        }
+    }
+}
+
+// HTML encode a value for use on the page
+function HtmlEncode(value)
+{
+    // Create an in-memory div, set it's inner text (which jQuery automatically encodes) then grab the encoded
+    // contents back out.  The div never exists on the page.
+    return $('<div/>').text(value).html();
+}
+
+// Build the child entries of a TOC entry
+function BuildChildren(tocDiv, data)
+{
+    var childLevel = +tocDiv.attr("data-toclevel") + 1;
+    var childTocLevel = childLevel >= 10 ? 10 : childLevel;
+    var elements = data.getElementsByTagName("HelpTOCNode");
+
+    var isRoot = true;
+
+    if(data.getElementsByTagName("HelpTOC").length == 0)
+    {
+        // The first node is the root node of this group, don't show it again
+        isRoot = false;
+    }
+
+    for(var i = elements.length - 1; i > 0 || (isRoot && i == 0); i--)
+    {
+        var childHRef, childId = elements[i].getAttribute("Url");
+
+        if(childId != null && childId.length > 5)
+        {
+            // The Url attribute has the form "html/{childId}.htm"
+            childHRef = childId.substring(5, childId.length);
+            childId = childId.substring(5, childId.lastIndexOf("."));
+        }
+        else
+        {
+            // The Id attribute is in raw form.  There is no URL (empty container node).  In this case, we'll
+            // just ignore it and go nowhere.  It's a rare case that isn't worth trying to get the first child.
+            // Instead, we'll just expand the node (see below).
+            childHRef = "#";
+            childId = elements[i].getAttribute("Id");
+        }
+
+        var existingItem = null;
+
+        tocDiv.nextAll().each(function()
+        {
+            if(!existingItem && $(this).children().last("a").attr("tocid") == childId)
+            {
+                existingItem = $(this);
+            }
+        });
+
+        if(existingItem != null)
+        {
+            // First move the children of the existing item
+            var existingChildLevel = +existingItem.attr("data-toclevel");
+            var doneMoving = false;
+            var inserter = tocDiv;
+
+            existingItem.nextAll().each(function()
+            {
+                if(!doneMoving && +$(this).attr("data-toclevel") > existingChildLevel)
+                {
+                    inserter.after($(this));
+                    inserter = $(this);
+                    $(this).attr("data-toclevel", +$(this).attr("data-toclevel") + childLevel - existingChildLevel);
+
+                    if($(this).hasClass("current"))
+                        $(this).attr("class", "toclevel" + (+$(this).attr("data-toclevel") + " current"));
+                    else
+                        $(this).attr("class", "toclevel" + (+$(this).attr("data-toclevel")));
+                }
+                else
+                {
+                    doneMoving = true;
+                }
+            });
+
+            // Now move the existing item itself
+            tocDiv.after(existingItem);
+            existingItem.attr("data-toclevel", childLevel);
+            existingItem.attr("class", "toclevel" + childLevel);
+        }
+        else
+        {
+            var hasChildren = elements[i].getAttribute("HasChildren");
+            var childTitle = HtmlEncode(elements[i].getAttribute("Title"));
+            var expander = "";
+
+            if(hasChildren)
+                expander = "<a class=\"tocCollapsed\" onclick=\"javascript: Toggle(this);\" href=\"#!\"></a>";
+
+            var text = "<div class=\"toclevel" + childTocLevel + "\" data-toclevel=\"" + childLevel + "\">" +
+                expander + "<a data-tochassubtree=\"" + hasChildren + "\" href=\"" + childHRef + "\" title=\"" +
+                childTitle + "\" tocid=\"" + childId + "\"" +
+                (childHRef == "#" ? " onclick=\"javascript: Toggle(this.previousSibling);\"" : "") + ">" +
+                childTitle + "</a></div>";
+
+            tocDiv.after(text);
+        }
+    }
+
+    tocDiv.attr("data-childrenloaded", true);
+}
+
+// Collapse a TOC entry
+function Collapse(tocDiv)
+{
+    // Hide all the TOC elements after item, until we reach one with a data-toclevel less than or equal to the
+    // current item's value.
+    var tocLevel = +tocDiv.attr("data-toclevel");
+    var done = false;
+
+    tocDiv.nextAll().each(function()
+    {
+        if(!done && +$(this).attr("data-toclevel") > tocLevel)
+        {
+            $(this).hide();
+        }
+        else
+        {
+            done = true;
+        }
+    });
+}
+
+// Expand a TOC entry
+function Expand(tocDiv)
+{
+    // Show all the TOC elements after item, until we reach one with a data-toclevel less than or equal to the
+    // current item's value
+    var tocLevel = +tocDiv.attr("data-toclevel");
+    var done = false;
+
+    tocDiv.nextAll().each(function()
+    {
+        if(done)
+        {
+            return;
+        }
+
+        var childTocLevel = +$(this).attr("data-toclevel");
+
+        if(childTocLevel == tocLevel + 1)
+        {
+            $(this).show();
+
+            if($(this).children("a").first().hasClass("tocExpanded"))
+            {
+                Expand($(this));
+            }
+        }
+        else if(childTocLevel > tocLevel + 1)
+        {
+            // Ignore this node, handled by recursive calls
+        }
+        else
+        {
+            done = true;
+        }
+    });
+}
+
+// This is called to prepare for dragging the sizer div
+function OnMouseDown(event)
+{
+    document.addEventListener("mousemove", OnMouseMove, true);
+    document.addEventListener("mouseup", OnMouseUp, true);
+    event.preventDefault();
+}
+
+// Resize the TOC as the sizer is dragged
+function OnMouseMove(event)
+{
+    tocWidth = (event.clientX > 700) ? 700 : (event.clientX < 100) ? 100 : event.clientX;
+
+    ResizeToc();
+}
+
+// Finish the drag operation when the mouse button is released
+function OnMouseUp(event)
+{
+    document.removeEventListener("mousemove", OnMouseMove, true);
+    document.removeEventListener("mouseup", OnMouseUp, true);
+
+    SetCookie("TocWidth", tocWidth);
+}
+
+// Search functions
+
+// Transfer to the search page from a topic
+function TransferToSearchPage()
+{
+    var searchText = document.getElementById("SearchTextBox").value.trim();
+
+    if(searchText.length != 0)
+        document.location.replace(encodeURI("../search.html?SearchText=" + searchText));
+}
+
+// Initiate a search when the search page loads
+function OnSearchPageLoad()
+{
+    var queryString = decodeURI(document.location.search);
+
+    if(queryString != "")
+    {
+        var idx, options = queryString.split(/[\?\=\&]/);
+
+        for(idx = 0; idx < options.length; idx++)
+            if(options[idx] == "SearchText" && idx + 1 < options.length)
+            {
+                document.getElementById("txtSearchText").value = options[idx + 1];
+                PerformSearch();
+                break;
+            }
+    }
+}
+
+// Perform a search using the best available method
+function PerformSearch()
+{
+    var searchText = document.getElementById("txtSearchText").value;
+    var sortByTitle = document.getElementById("chkSortByTitle").checked;
+    var searchResults = document.getElementById("searchResults");
+
+    if(searchText.length == 0)
+    {
+        searchResults.innerHTML = "<strong>Nothing found</strong>";
+        return;
+    }
+
+    searchResults.innerHTML = "Searching...";
+
+    // Determine the search method if not done already.  The ASPX and PHP searches are more efficient as they
+    // run asynchronously server-side.  If they can't be used, it defaults to the client-side script below which
+    // will work but has to download the index files.  For large help sites, this can be inefficient.
+    if(searchMethod == 0)
+        searchMethod = DetermineSearchMethod();
+
+    if(searchMethod == 1)
+    {
+        $.ajax({
+            type: "GET",
+            url: encodeURI("SearchHelp.aspx?Keywords=" + searchText + "&SortByTitle=" + sortByTitle),
+            success: function(html)
+            {
+                searchResults.innerHTML = html;
+            }
+        });
+
+        return;
+    }
+
+    if(searchMethod == 2)
+    {
+        $.ajax({
+            type: "GET",
+            url: encodeURI("SearchHelp.php?Keywords=" + searchText + "&SortByTitle=" + sortByTitle),
+            success: function(html)
+            {
+                searchResults.innerHTML = html;
+            }
+        });
+
+        return;
+    }
+
+    // Parse the keywords
+    var keywords = ParseKeywords(searchText);
+
+    // Get the list of files.  We'll be getting multiple files so we need to do this synchronously.
+    var fileList = [];
+
+    $.ajax({
+        type: "GET",
+        url: "fti/FTI_Files.json",
+        dataType: "json",
+        async: false,
+        success: function(data)
+        {
+            $.each(data, function(key, val)
+            {
+                fileList[key] = val;
+            });
+        }
+    });
+
+    var letters = [];
+    var wordDictionary = {};
+    var wordNotFound = false;
+
+    // Load the keyword files for each keyword starting letter
+    for(var idx = 0; idx < keywords.length && !wordNotFound; idx++)
+    {
+        var letter = keywords[idx].substring(0, 1);
+
+        if($.inArray(letter, letters) == -1)
+        {
+            letters.push(letter);
+
+            $.ajax({
+                type: "GET",
+                url: "fti/FTI_" + letter.charCodeAt(0) + ".json",
+                dataType: "json",
+                async: false,
+                success: function(data)
+                {
+                    var wordCount = 0;
+
+                    $.each(data, function(key, val)
+                    {
+                        wordDictionary[key] = val;
+                        wordCount++;
+                    });
+
+                    if(wordCount == 0)
+                        wordNotFound = true;
+                }
+            });
+        }
+    }
+
+    if(wordNotFound)
+        searchResults.innerHTML = "<strong>Nothing found</strong>";
+    else
+        searchResults.innerHTML = SearchForKeywords(keywords, fileList, wordDictionary, sortByTitle);
+}
+
+// Determine the search method by seeing if the ASPX or PHP search pages are present and working
+function DetermineSearchMethod()
+{
+    var method = 3;
+
+    try
+    {
+        $.ajax({
+            type: "GET",
+            url: "SearchHelp.aspx",
+            async: false,
+            success: function(html)
+            {
+                if(html.substring(0, 8) == "<strong>")
+                    method = 1;
+            }
+        });
+
+        if(method == 3)
+            $.ajax({
+                type: "GET",
+                url: "SearchHelp.php",
+                async: false,
+                success: function(html)
+                {
+                    if(html.substring(0, 8) == "<strong>")
+                        method = 2;
+                }
+            });
+    }
+    catch(e)
+    {
+    }
+
+    return method;
+}
+
+// Split the search text up into keywords
+function ParseKeywords(keywords)
+{
+    var keywordList = [];
+    var checkWord;
+    var words = keywords.split(/\W+/);
+
+    for(var idx = 0; idx < words.length; idx++)
+    {
+        checkWord = words[idx].toLowerCase();
+
+        if(checkWord.length > 2)
+        {
+            var charCode = checkWord.charCodeAt(0);
+
+            if((charCode < 48 || charCode > 57) && $.inArray(checkWord, keywordList) == -1)
+                keywordList.push(checkWord);
+        }
+    }
+
+    return keywordList;
+}
+
+// Search for keywords and generate a block of HTML containing the results
+function SearchForKeywords(keywords, fileInfo, wordDictionary, sortByTitle)
+{
+    var matches = [], matchingFileIndices = [], rankings = [];
+    var isFirst = true;
+
+    for(var idx = 0; idx < keywords.length; idx++)
+    {
+        var word = keywords[idx];
+        var occurrences = wordDictionary[word];
+
+        // All keywords must be found
+        if(occurrences == null)
+            return "<strong>Nothing found</strong>";
+
+        matches[word] = occurrences;
+        var occurrenceIndices = [];
+
+        // Get a list of the file indices for this match.  These are 64-bit numbers but JavaScript only does
+        // bit shifts on 32-bit values so we divide by 2^16 to get the same effect as ">> 16" and use floor()
+        // to truncate the result.
+        for(var ind in occurrences)
+            occurrenceIndices.push(Math.floor(occurrences[ind] / Math.pow(2, 16)));
+
+        if(isFirst)
+        {
+            isFirst = false;
+
+            for(var matchInd in occurrenceIndices)
+                matchingFileIndices.push(occurrenceIndices[matchInd]);
+        }
+        else
+        {
+            // After the first match, remove files that do not appear for all found keywords
+            for(var checkIdx = 0; checkIdx < matchingFileIndices.length; checkIdx++)
+                if($.inArray(matchingFileIndices[checkIdx], occurrenceIndices) == -1)
+                {
+                    matchingFileIndices.splice(checkIdx, 1);
+                    checkIdx--;
+                }
+        }
+    }
+
+    if(matchingFileIndices.length == 0)
+        return "<strong>Nothing found</strong>";
+
+    // Rank the files based on the number of times the words occurs
+    for(var fileIdx = 0; fileIdx < matchingFileIndices.length; fileIdx++)
+    {
+        // Split out the title, filename, and word count
+        var matchingIdx = matchingFileIndices[fileIdx];
+        var fileIndex = fileInfo[matchingIdx].split(/\0/);
+
+        var title = fileIndex[0];
+        var filename = fileIndex[1];
+        var wordCount = parseInt(fileIndex[2]);
+        var matchCount = 0;
+
+        for(var idx = 0; idx < keywords.length; idx++)
+        {
+            occurrences = matches[keywords[idx]];
+
+            for(var ind in occurrences)
+            {
+                var entry = occurrences[ind];
+
+                // These are 64-bit numbers but JavaScript only does bit shifts on 32-bit values so we divide
+                // by 2^16 to get the same effect as ">> 16" and use floor() to truncate the result.
+                if(Math.floor(entry / Math.pow(2, 16)) == matchingIdx)
+                    matchCount += (entry & 0xFFFF);
+            }
+        }
+
+        rankings.push({ Filename: filename, PageTitle: title, Rank: matchCount * 1000 / wordCount });
+
+        if(rankings.length > 99)
+            break;
+    }
+
+    rankings.sort(function(x, y)
+    {
+        if(!sortByTitle)
+            return y.Rank - x.Rank;
+
+        return x.PageTitle.localeCompare(y.PageTitle);
+    });
+
+    // Format and return the results
+    var content = "<ol>";
+
+    for(var r in rankings)
+        content += "<li><a href=\"" + rankings[r].Filename + "\" target=\"_blank\">" +
+            rankings[r].PageTitle + "</a></li>";
+
+    content += "</ol>";
+
+    if(rankings.length < matchingFileIndices.length)
+        content += "<p>Omitted " + (matchingFileIndices.length - rankings.length) + " more results</p>";
+
+    return content;
+}
diff --git a/doc/ref/csharp/html/scripts/branding.js b/doc/ref/csharp/html/scripts/branding.js
new file mode 100644
index 0000000000000000000000000000000000000000..9be90f3d4784f0c7433b33ce97ea52222c626961
--- /dev/null
+++ b/doc/ref/csharp/html/scripts/branding.js
@@ -0,0 +1,528 @@
+//===============================================================================================================
+// System  : Sandcastle Help File Builder
+// File    : branding.js
+// Author  : Eric Woodruff  (Eric@EWoodruff.us)
+// Updated : 05/15/2014
+// Note    : Copyright 2014, Eric Woodruff, All rights reserved
+//           Portions Copyright 2010-2014 Microsoft, All rights reserved
+//
+// This file contains the methods necessary to implement the language filtering, collapsible section, and
+// copy to clipboard options.
+//
+// This code is published under the Microsoft Public License (Ms-PL).  A copy of the license should be
+// distributed with the code.  It can also be found at the project website: https://GitHub.com/EWSoftware/SHFB.  This
+// notice, the author's name, and all copyright notices must remain intact in all applications, documentation,
+// and source files.
+//
+//    Date     Who  Comments
+// ==============================================================================================================
+// 05/04/2014  EFW  Created the code based on the MS Help Viewer script
+//===============================================================================================================
+
+// The IDs of all code snippet sets on the same page are stored so that we can keep them in synch when a tab is
+// selected.
+var allTabSetIds = new Array();
+
+// The IDs of language-specific text (LST) spans are used as dictionary keys so that we can get access to the
+// spans and update them when the user changes to a different language tab.  The values of the dictionary
+// objects are pipe separated language-specific attributes (lang1=value|lang2=value|lang3=value).  The language
+// ID can be specific (cs, vb, cpp, etc.) or may be a neutral entry (nu) which specifies text common to multiple
+// languages.  If a language is not present and there is no neutral entry, the span is hidden for all languages
+// to which it does not apply.
+var allLSTSetIds = new Object();
+
+// Help 1 persistence support.  This code must appear inline.
+var isHelp1;
+
+var curLoc = document.location + ".";
+
+if(curLoc.indexOf("mk:@MSITStore") == 0)
+{
+    isHelp1 = true;
+    curLoc = "ms-its:" + curLoc.substring(14, curLoc.length - 1);
+    document.location.replace(curLoc);
+}
+else
+    if(curLoc.indexOf("ms-its:") == 0)
+        isHelp1 = true;
+    else
+        isHelp1 = false;
+
+// The OnLoad method
+function OnLoad(defaultLanguage)
+{
+    var defLang;
+
+    if(typeof (defaultLanguage) == "undefined" || defaultLanguage == null || defaultLanguage == "")
+        defLang = "vb";
+    else
+        defLang = defaultLanguage;
+
+    // In MS Help Viewer, the transform the topic is ran through can move the footer.  Move it back where it
+    // belongs if necessary.
+    try
+    {
+        var footer = document.getElementById("pageFooter")
+
+        if(footer)
+        {
+            var footerParent = document.body;
+
+            if(footer.parentElement != footerParent)
+            {
+                footer.parentElement.removeChild(footer);
+                footerParent.appendChild(footer);
+            }
+        }
+    }
+    catch(e)
+    {
+    }
+
+    var language = GetCookie("CodeSnippetContainerLanguage", defLang);
+
+    // If LST exists on the page, set the LST to show the user selected programming language
+    UpdateLST(language);
+
+    // If code snippet groups exist, set the current language for them
+    if(allTabSetIds.length > 0)
+    {
+        var i = 0;
+
+        while(i < allTabSetIds.length)
+        {
+            var tabCount = 1;
+
+            // The tab count may vary so find the last one in this set
+            while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null)
+                tabCount++;
+
+            tabCount--;
+
+            // If not grouped, skip it
+            if(tabCount < 2)
+            {
+                // Disable the Copy Code link if in Chrome
+                if(navigator.userAgent.toLowerCase().indexOf("chrome") != -1)
+                    document.getElementById(allTabSetIds[i] + "_copyCode").style.display = "none";
+            }
+            else
+                SetCurrentLanguage(allTabSetIds[i], language, tabCount);
+
+            i++;
+        }
+    }
+
+    InitializeToc();
+}
+
+// This is just a place holder.  The website script implements this function to initialize it's in-page TOC pane
+function InitializeToc()
+{
+}
+
+// This function executes in the OnLoad event and ChangeTab action on code snippets.  The function parameter
+// is the user chosen programming language.  This function iterates through the "allLSTSetIds" dictionary object
+// to update the node value of the LST span tag per the user's chosen programming language.
+function UpdateLST(language)
+{
+    for(var lstMember in allLSTSetIds)
+    {
+        var devLangSpan = document.getElementById(lstMember);
+
+        if(devLangSpan != null)
+        {
+            // There may be a carriage return before the LST span in the content so the replace function below
+            // is used to trim the whitespace at the end of the previous node of the current LST node.
+            if(devLangSpan.previousSibling != null && devLangSpan.previousSibling.nodeValue != null)
+                devLangSpan.previousSibling.nodeValue = devLangSpan.previousSibling.nodeValue.replace(/\s+$/, "");
+
+            var langs = allLSTSetIds[lstMember].split("|");
+            var k = 0;
+            var keyValue;
+
+            while(k < langs.length)
+            {
+                keyValue = langs[k].split("=");
+
+                if(keyValue[0] == language)
+                {
+                    devLangSpan.innerHTML = keyValue[1];
+
+                    // Help 1 and MS Help Viewer workaround.  Add a space if the following text element starts
+                    // with a space to prevent things running together.
+                    if(devLangSpan.parentNode != null && devLangSpan.parentNode.nextSibling != null)
+                    {
+                        if (devLangSpan.parentNode.nextSibling.nodeValue != null &&
+                          !devLangSpan.parentNode.nextSibling.nodeValue.substring(0, 1).match(/[.,);:!/?]/))
+                        {
+                            devLangSpan.innerHTML = keyValue[1] + " ";
+                        }
+                    }
+                    break;
+                }
+
+                k++;
+            }
+
+            // If not found, default to the neutral language.  If there is no neutral language entry, clear the
+            // content to hide it.
+            if(k >= langs.length)
+            {
+                if(language != "nu")
+                {
+                    k = 0;
+
+                    while(k < langs.length)
+                    {
+                        keyValue = langs[k].split("=");
+
+                        if(keyValue[0] == "nu")
+                        {
+                            devLangSpan.innerHTML = keyValue[1];
+
+                            // Help 1 and MS Help Viewer workaround.  Add a space if the following text element
+                            // starts with a space to prevent things running together.
+                            if(devLangSpan.parentNode != null && devLangSpan.parentNode.nextSibling != null)
+                            {
+                                if(devLangSpan.parentNode.nextSibling.nodeValue != null &&
+                                  !devLangSpan.parentNode.nextSibling.nodeValue.substring(0, 1).match(/[.,);:!/?]/))
+                                {
+                                    devLangSpan.innerHTML = keyValue[1] + " ";
+                                }
+                            }
+                            break;
+                        }
+
+                        k++;
+                    }
+                }
+
+                if(k >= langs.length)
+                    devLangSpan.innerHTML = "";
+            }
+        }
+    }
+}
+
+// Get the specified cookie.  If not found, return the specified default value.
+function GetCookie(cookieName, defaultValue)
+{
+    if(isHelp1)
+    {
+        try
+        {
+            var globals = Help1Globals;
+
+            var value = globals.Load(cookieName);
+
+            if(value == null)
+                value = defaultValue;
+
+            return value;
+        }
+        catch(e)
+        {
+            return defaultValue;
+        }
+    }
+
+    var cookie = document.cookie.split("; ");
+
+    for(var i = 0; i < cookie.length; i++)
+    {
+        var crumb = cookie[i].split("=");
+
+        if(cookieName == crumb[0])
+            return unescape(crumb[1])
+    }
+
+    return defaultValue;
+}
+
+// Set the specified cookie to the specified value
+function SetCookie(name, value)
+{
+    if(isHelp1)
+    {
+        try
+        {
+            var globals = Help1Globals;
+
+            globals.Save(name, value);
+        }
+        catch(e)
+        {
+        }
+
+        return;
+    }
+
+    var today = new Date();
+
+    today.setTime(today.getTime());
+
+    // Set the expiration time to be 60 days from now (in milliseconds)
+    var expires_date = new Date(today.getTime() + (60 * 1000 * 60 * 60 * 24));
+
+    document.cookie = name + "=" + escape(value) + ";expires=" + expires_date.toGMTString() + ";path=/";
+}
+
+// Add a language-specific text ID
+function AddLanguageSpecificTextSet(lstId)
+{
+    var keyValue = lstId.split("?")
+
+    allLSTSetIds[keyValue[0]] = keyValue[1];
+}
+
+// Add a language tab set ID
+function AddLanguageTabSet(tabSetId)
+{
+    allTabSetIds.push(tabSetId);
+}
+
+// Switch the active tab for all of other code snippets
+function ChangeTab(tabSetId, language, snippetIdx, snippetCount)
+{
+    SetCookie("CodeSnippetContainerLanguage", language);
+
+    SetActiveTab(tabSetId, snippetIdx, snippetCount);
+
+    // If LST exists on the page, set the LST to show the user selected programming language
+    UpdateLST(language);
+
+    var i = 0;
+
+    while(i < allTabSetIds.length)
+    {
+        // We just care about other snippets
+        if(allTabSetIds[i] != tabSetId)
+        {
+            // Other tab sets may not have the same number of tabs
+            var tabCount = 1;
+
+            while(document.getElementById(allTabSetIds[i] + "_tab" + tabCount) != null)
+                tabCount++;
+
+            tabCount--;
+
+            // If not grouped, skip it
+            if(tabCount > 1)
+                SetCurrentLanguage(allTabSetIds[i], language, tabCount);
+        }
+
+        i++;
+    }
+}
+
+// Sets the current language in the specified tab set
+function SetCurrentLanguage(tabSetId, language, tabCount)
+{
+    var tabIndex = 1;
+
+    while(tabIndex <= tabCount)
+    {
+        var tabTemp = document.getElementById(tabSetId + "_tab" + tabIndex);
+
+        if(tabTemp != null && tabTemp.innerHTML.indexOf("'" + language + "'") != -1)
+            break;
+
+        tabIndex++;
+    }
+
+    if(tabIndex > tabCount)
+    {
+        // Select the first non-disabled tab
+        tabIndex = 1;
+
+        if(document.getElementById(tabSetId + "_tab1").className == "codeSnippetContainerTabPhantom")
+        {
+            tabIndex++;
+
+            while(tabIndex <= tabCount)
+            {
+                var tab = document.getElementById(tabSetId + "_tab" + tabIndex);
+
+                if(tab.className != "codeSnippetContainerTabPhantom")
+                {
+                    tab.className = "codeSnippetContainerTabActive";
+                    document.getElementById(tabSetId + "_code_Div" + j).style.display = "block";
+                    break;
+                }
+
+                tabIndex++;
+            }
+        }
+    }
+
+    SetActiveTab(tabSetId, tabIndex, tabCount);
+}
+
+// Set the active tab within a tab set
+function SetActiveTab(tabSetId, tabIndex, tabCount)
+{
+    var i = 1;
+
+    while(i <= tabCount)
+    {
+        var tabTemp = document.getElementById(tabSetId + "_tab" + i);
+
+        if(tabTemp.className == "codeSnippetContainerTabActive")
+            tabTemp.className = "codeSnippetContainerTab";
+        else
+            if(tabTemp.className == "codeSnippetContainerTabPhantom")
+                tabTemp.style.display = "none";
+
+        var codeTemp = document.getElementById(tabSetId + "_code_Div" + i);
+
+        if(codeTemp.style.display != "none")
+            codeTemp.style.display = "none";
+
+        i++;
+    }
+
+    // Phantom tabs are shown or hidden as needed
+    if(document.getElementById(tabSetId + "_tab" + tabIndex).className != "codeSnippetContainerTabPhantom")
+        document.getElementById(tabSetId + "_tab" + tabIndex).className = "codeSnippetContainerTabActive";
+    else
+        document.getElementById(tabSetId + "_tab" + tabIndex).style.display = "block";
+
+    document.getElementById(tabSetId + "_code_Div" + tabIndex).style.display = "block";
+
+    // Show copy code button if not in Chrome
+    if(navigator.userAgent.toLowerCase().indexOf("chrome") == -1)
+        document.getElementById(tabSetId + "_copyCode").style.display = "inline";
+    else
+        document.getElementById(tabSetId + "_copyCode").style.display = "none";
+}
+
+// Copy the code from the active tab of the given tab set to the clipboard
+function CopyToClipboard(tabSetId)
+{
+    var tabTemp, contentId;
+    var i = 1;
+
+    do
+    {
+        contentId = tabSetId + "_code_Div" + i;
+        tabTemp = document.getElementById(contentId);
+
+        if(tabTemp != null && tabTemp.style.display != "none")
+            break;
+
+        i++;
+
+    } while(tabTemp != null);
+
+    if(tabTemp == null)
+        return;
+
+    if(window.clipboardData)
+    {
+        try
+        {
+            window.clipboardData.setData("Text", document.getElementById(contentId).innerText);
+        }
+        catch(e)
+        {
+            alert("Permission denied. Enable copying to the clipboard.");
+        }
+    }
+    else if(window.netscape)
+    {
+        try
+        {
+            netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");
+
+            var clip = Components.classes["@mozilla.org/widget/clipboard;1"].createInstance(
+                Components.interfaces.nsIClipboard);
+
+            if(!clip)
+                return;
+
+            var trans = Components.classes["@mozilla.org/widget/transferable;1"].createInstance(
+                Components.interfaces.nsITransferable);
+
+            if(!trans)
+                return;
+
+            trans.addDataFlavor("text/unicode");
+
+            var str = new Object();
+            var len = new Object();
+            var str = Components.classes["@mozilla.org/supports-string;1"].createInstance(
+                Components.interfaces.nsISupportsString);
+
+            var copytext = document.getElementById(contentId).textContent;
+
+            str.data = copytext;
+            trans.setTransferData("text/unicode", str, copytext.length * 2);
+
+            var clipid = Components.interfaces.nsIClipboard;
+
+            clip.setData(trans, null, clipid.kGlobalClipboard);
+        }
+        catch(e)
+        {
+            alert("Permission denied. Enter \"about:config\" in the address bar and double-click the \"signed.applets.codebase_principal_support\" setting to enable copying to the clipboard.");
+        }
+    }
+}
+
+// Expand or collapse a section
+function SectionExpandCollapse(togglePrefix)
+{
+    var image = document.getElementById(togglePrefix + "Toggle");
+    var section = document.getElementById(togglePrefix + "Section");
+
+    if(image != null && section != null)
+        if(section.style.display == "")
+        {
+            image.src = image.src.replace("SectionExpanded.png", "SectionCollapsed.png");
+            section.style.display = "none";
+        }
+        else
+        {
+            image.src = image.src.replace("SectionCollapsed.png", "SectionExpanded.png");
+            section.style.display = "";
+        }
+}
+
+// Expand or collapse a section when it has the focus and Enter is hit
+function SectionExpandCollapse_CheckKey(togglePrefix, eventArgs)
+{
+    if(eventArgs.keyCode == 13)
+        SectionExpandCollapse(togglePrefix);
+}
+
+// Help 1 persistence object.  This requires a hidden input element on the page with a class of "userDataStyle"
+// defined in the style sheet that implements the user data binary behavior:
+// <input type="hidden" id="userDataCache" class="userDataStyle" />
+var Help1Globals =
+{
+    UserDataCache: function()
+    {
+        var userData = document.getElementById("userDataCache");
+
+        return userData;
+    },
+
+    Load: function(key)
+    {
+        var userData = this.UserDataCache();
+
+        userData.load("userDataSettings");
+
+        var value = userData.getAttribute(key);
+
+        return value;
+    },
+
+    Save: function(key, value)
+    {
+        var userData = this.UserDataCache();
+        userData.setAttribute(key, value);
+        userData.save("userDataSettings");
+    }
+};
diff --git a/doc/ref/csharp/html/scripts/jquery-1.11.0.min.js b/doc/ref/csharp/html/scripts/jquery-1.11.0.min.js
new file mode 100644
index 0000000000000000000000000000000000000000..73f33fb3aa529308d1f3f2f4fc253c4abed95374
--- /dev/null
+++ b/doc/ref/csharp/html/scripts/jquery-1.11.0.min.js
@@ -0,0 +1,4 @@
+/*! jQuery v1.11.0 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
+!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k="".trim,l={},m="1.11.0",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(e=arguments[h]))for(d in e)a=g[d],c=e[d],g!==c&&(j&&c&&(n.isPlainObject(c)||(b=n.isArray(c)))?(b?(b=!1,f=a&&n.isArray(a)?a:[]):f=a&&n.isPlainObject(a)?a:{},g[d]=n.extend(j,f,c)):void 0!==c&&(g[d]=c));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray||function(a){return"array"===n.type(a)},isWindow:function(a){return null!=a&&a==a.window},isNumeric:function(a){return a-parseFloat(a)>=0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},isPlainObject:function(a){var b;if(!a||"object"!==n.type(a)||a.nodeType||n.isWindow(a))return!1;try{if(a.constructor&&!j.call(a,"constructor")&&!j.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}if(l.ownLast)for(b in a)return j.call(a,b);for(b in a);return void 0===b||j.call(a,b)},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(b){b&&n.trim(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:k&&!k.call("\ufeff\xa0")?function(a){return null==a?"":k.call(a)}:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){var d;if(b){if(g)return g.call(b,a,c);for(d=b.length,c=c?0>c?Math.max(0,d+c):c:0;d>c;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,b){var c=+b.length,d=0,e=a.length;while(c>d)a[e++]=b[d++];if(c!==c)while(void 0!==b[d])a[e++]=b[d++];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(f=a[b],b=a,a=f),n.isFunction(a)?(c=d.call(arguments,2),e=function(){return a.apply(b||this,c.concat(d.call(arguments)))},e.guid=a.guid=a.guid||n.guid++,e):void 0},now:function(){return+new Date},support:l}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s="sizzle"+-new Date,t=a.document,u=0,v=0,w=eb(),x=eb(),y=eb(),z=function(a,b){return a===b&&(j=!0),0},A="undefined",B=1<<31,C={}.hasOwnProperty,D=[],E=D.pop,F=D.push,G=D.push,H=D.slice,I=D.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},J="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",K="[\\x20\\t\\r\\n\\f]",L="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",M=L.replace("w","w#"),N="\\["+K+"*("+L+")"+K+"*(?:([*^$|!~]?=)"+K+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+M+")|)|)"+K+"*\\]",O=":("+L+")(?:\\(((['\"])((?:\\\\.|[^\\\\])*?)\\3|((?:\\\\.|[^\\\\()[\\]]|"+N.replace(3,8)+")*)|.*)\\)|)",P=new RegExp("^"+K+"+|((?:^|[^\\\\])(?:\\\\.)*)"+K+"+$","g"),Q=new RegExp("^"+K+"*,"+K+"*"),R=new RegExp("^"+K+"*([>+~]|"+K+")"+K+"*"),S=new RegExp("="+K+"*([^\\]'\"]*?)"+K+"*\\]","g"),T=new RegExp(O),U=new RegExp("^"+M+"$"),V={ID:new RegExp("^#("+L+")"),CLASS:new RegExp("^\\.("+L+")"),TAG:new RegExp("^("+L.replace("w","w*")+")"),ATTR:new RegExp("^"+N),PSEUDO:new RegExp("^"+O),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+K+"*(even|odd|(([+-]|)(\\d*)n|)"+K+"*(?:([+-]|)"+K+"*(\\d+)|))"+K+"*\\)|)","i"),bool:new RegExp("^(?:"+J+")$","i"),needsContext:new RegExp("^"+K+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+K+"*((?:-\\d)?\\d*)"+K+"*\\)|)(?=[^-]|$)","i")},W=/^(?:input|select|textarea|button)$/i,X=/^h\d$/i,Y=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,$=/[+~]/,_=/'|\\/g,ab=new RegExp("\\\\([\\da-f]{1,6}"+K+"?|("+K+")|.)","ig"),bb=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{G.apply(D=H.call(t.childNodes),t.childNodes),D[t.childNodes.length].nodeType}catch(cb){G={apply:D.length?function(a,b){F.apply(a,H.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function db(a,b,d,e){var f,g,h,i,j,m,p,q,u,v;if((b?b.ownerDocument||b:t)!==l&&k(b),b=b||l,d=d||[],!a||"string"!=typeof a)return d;if(1!==(i=b.nodeType)&&9!==i)return[];if(n&&!e){if(f=Z.exec(a))if(h=f[1]){if(9===i){if(g=b.getElementById(h),!g||!g.parentNode)return d;if(g.id===h)return d.push(g),d}else if(b.ownerDocument&&(g=b.ownerDocument.getElementById(h))&&r(b,g)&&g.id===h)return d.push(g),d}else{if(f[2])return G.apply(d,b.getElementsByTagName(a)),d;if((h=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return G.apply(d,b.getElementsByClassName(h)),d}if(c.qsa&&(!o||!o.test(a))){if(q=p=s,u=b,v=9===i&&a,1===i&&"object"!==b.nodeName.toLowerCase()){m=ob(a),(p=b.getAttribute("id"))?q=p.replace(_,"\\$&"):b.setAttribute("id",q),q="[id='"+q+"'] ",j=m.length;while(j--)m[j]=q+pb(m[j]);u=$.test(a)&&mb(b.parentNode)||b,v=m.join(",")}if(v)try{return G.apply(d,u.querySelectorAll(v)),d}catch(w){}finally{p||b.removeAttribute("id")}}}return xb(a.replace(P,"$1"),b,d,e)}function eb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function fb(a){return a[s]=!0,a}function gb(a){var b=l.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function hb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function ib(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||B)-(~a.sourceIndex||B);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function jb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function kb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function lb(a){return fb(function(b){return b=+b,fb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function mb(a){return a&&typeof a.getElementsByTagName!==A&&a}c=db.support={},f=db.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},k=db.setDocument=function(a){var b,e=a?a.ownerDocument||a:t,g=e.defaultView;return e!==l&&9===e.nodeType&&e.documentElement?(l=e,m=e.documentElement,n=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){k()},!1):g.attachEvent&&g.attachEvent("onunload",function(){k()})),c.attributes=gb(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=gb(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=Y.test(e.getElementsByClassName)&&gb(function(a){return a.innerHTML="<div class='a'></div><div class='a i'></div>",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=gb(function(a){return m.appendChild(a).id=s,!e.getElementsByName||!e.getElementsByName(s).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==A&&n){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(ab,bb);return function(a){var c=typeof a.getAttributeNode!==A&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==A?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==A&&n?b.getElementsByClassName(a):void 0},p=[],o=[],(c.qsa=Y.test(e.querySelectorAll))&&(gb(function(a){a.innerHTML="<select t=''><option selected=''></option></select>",a.querySelectorAll("[t^='']").length&&o.push("[*^$]="+K+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||o.push("\\["+K+"*(?:value|"+J+")"),a.querySelectorAll(":checked").length||o.push(":checked")}),gb(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&o.push("name"+K+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||o.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),o.push(",.*:")})),(c.matchesSelector=Y.test(q=m.webkitMatchesSelector||m.mozMatchesSelector||m.oMatchesSelector||m.msMatchesSelector))&&gb(function(a){c.disconnectedMatch=q.call(a,"div"),q.call(a,"[s!='']:x"),p.push("!=",O)}),o=o.length&&new RegExp(o.join("|")),p=p.length&&new RegExp(p.join("|")),b=Y.test(m.compareDocumentPosition),r=b||Y.test(m.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},z=b?function(a,b){if(a===b)return j=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===t&&r(t,a)?-1:b===e||b.ownerDocument===t&&r(t,b)?1:i?I.call(i,a)-I.call(i,b):0:4&d?-1:1)}:function(a,b){if(a===b)return j=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],k=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:i?I.call(i,a)-I.call(i,b):0;if(f===g)return ib(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)k.unshift(c);while(h[d]===k[d])d++;return d?ib(h[d],k[d]):h[d]===t?-1:k[d]===t?1:0},e):l},db.matches=function(a,b){return db(a,null,null,b)},db.matchesSelector=function(a,b){if((a.ownerDocument||a)!==l&&k(a),b=b.replace(S,"='$1']"),!(!c.matchesSelector||!n||p&&p.test(b)||o&&o.test(b)))try{var d=q.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return db(b,l,null,[a]).length>0},db.contains=function(a,b){return(a.ownerDocument||a)!==l&&k(a),r(a,b)},db.attr=function(a,b){(a.ownerDocument||a)!==l&&k(a);var e=d.attrHandle[b.toLowerCase()],f=e&&C.call(d.attrHandle,b.toLowerCase())?e(a,b,!n):void 0;return void 0!==f?f:c.attributes||!n?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},db.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},db.uniqueSort=function(a){var b,d=[],e=0,f=0;if(j=!c.detectDuplicates,i=!c.sortStable&&a.slice(0),a.sort(z),j){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return i=null,a},e=db.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=db.selectors={cacheLength:50,createPseudo:fb,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(ab,bb),a[3]=(a[4]||a[5]||"").replace(ab,bb),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||db.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&db.error(a[0]),a},PSEUDO:function(a){var b,c=!a[5]&&a[2];return V.CHILD.test(a[0])?null:(a[3]&&void 0!==a[4]?a[2]=a[4]:c&&T.test(c)&&(b=ob(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(ab,bb).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=w[a+" "];return b||(b=new RegExp("(^|"+K+")"+a+"("+K+"|$)"))&&w(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==A&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=db.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),t=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&t){k=q[s]||(q[s]={}),j=k[a]||[],n=j[0]===u&&j[1],m=j[0]===u&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[u,n,m];break}}else if(t&&(j=(b[s]||(b[s]={}))[a])&&j[0]===u)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(t&&((l[s]||(l[s]={}))[a]=[u,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||db.error("unsupported pseudo: "+a);return e[s]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?fb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=I.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:fb(function(a){var b=[],c=[],d=g(a.replace(P,"$1"));return d[s]?fb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:fb(function(a){return function(b){return db(a,b).length>0}}),contains:fb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:fb(function(a){return U.test(a||"")||db.error("unsupported lang: "+a),a=a.replace(ab,bb).toLowerCase(),function(b){var c;do if(c=n?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===m},focus:function(a){return a===l.activeElement&&(!l.hasFocus||l.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return X.test(a.nodeName)},input:function(a){return W.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:lb(function(){return[0]}),last:lb(function(a,b){return[b-1]}),eq:lb(function(a,b,c){return[0>c?c+b:c]}),even:lb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:lb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:lb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:lb(function(a,b,c){for(var d=0>c?c+b:c;++d<b;)a.push(d);return a})}},d.pseudos.nth=d.pseudos.eq;for(b in{radio:!0,checkbox:!0,file:!0,password:!0,image:!0})d.pseudos[b]=jb(b);for(b in{submit:!0,reset:!0})d.pseudos[b]=kb(b);function nb(){}nb.prototype=d.filters=d.pseudos,d.setFilters=new nb;function ob(a,b){var c,e,f,g,h,i,j,k=x[a+" "];if(k)return b?0:k.slice(0);h=a,i=[],j=d.preFilter;while(h){(!c||(e=Q.exec(h)))&&(e&&(h=h.slice(e[0].length)||h),i.push(f=[])),c=!1,(e=R.exec(h))&&(c=e.shift(),f.push({value:c,type:e[0].replace(P," ")}),h=h.slice(c.length));for(g in d.filter)!(e=V[g].exec(h))||j[g]&&!(e=j[g](e))||(c=e.shift(),f.push({value:c,type:g,matches:e}),h=h.slice(c.length));if(!c)break}return b?h.length:h?db.error(a):x(a,i).slice(0)}function pb(a){for(var b=0,c=a.length,d="";c>b;b++)d+=a[b].value;return d}function qb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=v++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[u,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[s]||(b[s]={}),(h=i[d])&&h[0]===u&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function rb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function sb(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function tb(a,b,c,d,e,f){return d&&!d[s]&&(d=tb(d)),e&&!e[s]&&(e=tb(e,f)),fb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||wb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:sb(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=sb(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?I.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=sb(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):G.apply(g,r)})}function ub(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],i=g||d.relative[" "],j=g?1:0,k=qb(function(a){return a===b},i,!0),l=qb(function(a){return I.call(b,a)>-1},i,!0),m=[function(a,c,d){return!g&&(d||c!==h)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>j;j++)if(c=d.relative[a[j].type])m=[qb(rb(m),c)];else{if(c=d.filter[a[j].type].apply(null,a[j].matches),c[s]){for(e=++j;f>e;e++)if(d.relative[a[e].type])break;return tb(j>1&&rb(m),j>1&&pb(a.slice(0,j-1).concat({value:" "===a[j-2].type?"*":""})).replace(P,"$1"),c,e>j&&ub(a.slice(j,e)),f>e&&ub(a=a.slice(e)),f>e&&pb(a))}m.push(c)}return rb(m)}function vb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,i,j,k){var m,n,o,p=0,q="0",r=f&&[],s=[],t=h,v=f||e&&d.find.TAG("*",k),w=u+=null==t?1:Math.random()||.1,x=v.length;for(k&&(h=g!==l&&g);q!==x&&null!=(m=v[q]);q++){if(e&&m){n=0;while(o=a[n++])if(o(m,g,i)){j.push(m);break}k&&(u=w)}c&&((m=!o&&m)&&p--,f&&r.push(m))}if(p+=q,c&&q!==p){n=0;while(o=b[n++])o(r,s,g,i);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=E.call(j));s=sb(s)}G.apply(j,s),k&&!f&&s.length>0&&p+b.length>1&&db.uniqueSort(j)}return k&&(u=w,h=t),r};return c?fb(f):f}g=db.compile=function(a,b){var c,d=[],e=[],f=y[a+" "];if(!f){b||(b=ob(a)),c=b.length;while(c--)f=ub(b[c]),f[s]?d.push(f):e.push(f);f=y(a,vb(e,d))}return f};function wb(a,b,c){for(var d=0,e=b.length;e>d;d++)db(a,b[d],c);return c}function xb(a,b,e,f){var h,i,j,k,l,m=ob(a);if(!f&&1===m.length){if(i=m[0]=m[0].slice(0),i.length>2&&"ID"===(j=i[0]).type&&c.getById&&9===b.nodeType&&n&&d.relative[i[1].type]){if(b=(d.find.ID(j.matches[0].replace(ab,bb),b)||[])[0],!b)return e;a=a.slice(i.shift().value.length)}h=V.needsContext.test(a)?0:i.length;while(h--){if(j=i[h],d.relative[k=j.type])break;if((l=d.find[k])&&(f=l(j.matches[0].replace(ab,bb),$.test(i[0].type)&&mb(b.parentNode)||b))){if(i.splice(h,1),a=f.length&&pb(i),!a)return G.apply(e,f),e;break}}}return g(a,m)(f,b,!n,e,$.test(a)&&mb(b.parentNode)||b),e}return c.sortStable=s.split("").sort(z).join("")===s,c.detectDuplicates=!!j,k(),c.sortDetached=gb(function(a){return 1&a.compareDocumentPosition(l.createElement("div"))}),gb(function(a){return a.innerHTML="<a href='#'></a>","#"===a.firstChild.getAttribute("href")})||hb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&gb(function(a){return a.innerHTML="<input/>",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||hb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),gb(function(a){return null==a.getAttribute("disabled")})||hb(J,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),db}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return n.inArray(a,b)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=[],d=this,e=d.length;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;e>b;b++)if(n.contains(d[b],this))return!0}));for(b=0;e>b;b++)n.find(a,d[b],c);return c=this.pushStack(e>1?n.unique(c):c),c.selector=this.selector?this.selector+" "+a:a,c},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=a.document,A=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,B=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a.charAt(0)&&">"===a.charAt(a.length-1)&&a.length>=3?[null,a,null]:A.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:z,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}if(d=z.getElementById(c[2]),d&&d.parentNode){if(d.id!==c[2])return y.find(a);this.length=1,this[0]=d}return this.context=z,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};B.prototype=n.fn,y=n(z);var C=/^(?:parents|prev(?:Until|All))/,D={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=a[b];while(e&&9!==e.nodeType&&(void 0===c||1!==e.nodeType||!n(e).is(c)))1===e.nodeType&&d.push(e),e=e[b];return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b,c=n(a,this),d=c.length;return this.filter(function(){for(b=0;d>b;b++)if(n.contains(this,c[b]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?n.inArray(this[0],n(a)):n.inArray(a.jquery?a[0]:a,this):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function E(a,b){do a=a[b];while(a&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return E(a,"nextSibling")},prev:function(a){return E(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return n.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(D[a]||(e=n.unique(e)),C.test(a)&&(e=e.reverse())),this.pushStack(e)}});var F=/\S+/g,G={};function H(a){var b=G[a]={};return n.each(a.match(F)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?G[a]||H(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(c=a.memory&&l,d=!0,f=g||0,g=0,e=h.length,b=!0;h&&e>f;f++)if(h[f].apply(l[0],l[1])===!1&&a.stopOnFalse){c=!1;break}b=!1,h&&(i?i.length&&j(i.shift()):c?h=[]:k.disable())},k={add:function(){if(h){var d=h.length;!function f(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&f(c)})}(arguments),b?e=h.length:c&&(g=d,j(c))}return this},remove:function(){return h&&n.each(arguments,function(a,c){var d;while((d=n.inArray(c,h,d))>-1)h.splice(d,1),b&&(e>=d&&e--,f>=d&&f--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],e=0,this},disable:function(){return h=i=c=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,c||k.disable(),this},locked:function(){return!i},fireWith:function(a,c){return!h||d&&!i||(c=c||[],c=[a,c.slice?c.slice():c],b?i.push(c):j(c)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!d}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var I;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){if(a===!0?!--n.readyWait:!n.isReady){if(!z.body)return setTimeout(n.ready);n.isReady=!0,a!==!0&&--n.readyWait>0||(I.resolveWith(z,[n]),n.fn.trigger&&n(z).trigger("ready").off("ready"))}}});function J(){z.addEventListener?(z.removeEventListener("DOMContentLoaded",K,!1),a.removeEventListener("load",K,!1)):(z.detachEvent("onreadystatechange",K),a.detachEvent("onload",K))}function K(){(z.addEventListener||"load"===event.type||"complete"===z.readyState)&&(J(),n.ready())}n.ready.promise=function(b){if(!I)if(I=n.Deferred(),"complete"===z.readyState)setTimeout(n.ready);else if(z.addEventListener)z.addEventListener("DOMContentLoaded",K,!1),a.addEventListener("load",K,!1);else{z.attachEvent("onreadystatechange",K),a.attachEvent("onload",K);var c=!1;try{c=null==a.frameElement&&z.documentElement}catch(d){}c&&c.doScroll&&!function e(){if(!n.isReady){try{c.doScroll("left")}catch(a){return setTimeout(e,50)}J(),n.ready()}}()}return I.promise(b)};var L="undefined",M;for(M in n(l))break;l.ownLast="0"!==M,l.inlineBlockNeedsLayout=!1,n(function(){var a,b,c=z.getElementsByTagName("body")[0];c&&(a=z.createElement("div"),a.style.cssText="border:0;width:0;height:0;position:absolute;top:0;left:-9999px;margin-top:1px",b=z.createElement("div"),c.appendChild(a).appendChild(b),typeof b.style.zoom!==L&&(b.style.cssText="border:0;margin:0;width:1px;padding:1px;display:inline;zoom:1",(l.inlineBlockNeedsLayout=3===b.offsetWidth)&&(c.style.zoom=1)),c.removeChild(a),a=b=null)}),function(){var a=z.createElement("div");if(null==l.deleteExpando){l.deleteExpando=!0;try{delete a.test}catch(b){l.deleteExpando=!1}}a=null}(),n.acceptData=function(a){var b=n.noData[(a.nodeName+" ").toLowerCase()],c=+a.nodeType||1;return 1!==c&&9!==c?!1:!b||b!==!0&&a.getAttribute("classid")===b};var N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){if(void 0===c&&1===a.nodeType){var d="data-"+b.replace(O,"-$1").toLowerCase();if(c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}n.data(a,b,c)}else c=void 0}return c}function Q(a){var b;for(b in a)if(("data"!==b||!n.isEmptyObject(a[b]))&&"toJSON"!==b)return!1;return!0}function R(a,b,d,e){if(n.acceptData(a)){var f,g,h=n.expando,i=a.nodeType,j=i?n.cache:a,k=i?a[h]:a[h]&&h;if(k&&j[k]&&(e||j[k].data)||void 0!==d||"string"!=typeof b)return k||(k=i?a[h]=c.pop()||n.guid++:h),j[k]||(j[k]=i?{}:{toJSON:n.noop}),("object"==typeof b||"function"==typeof b)&&(e?j[k]=n.extend(j[k],b):j[k].data=n.extend(j[k].data,b)),g=j[k],e||(g.data||(g.data={}),g=g.data),void 0!==d&&(g[n.camelCase(b)]=d),"string"==typeof b?(f=g[b],null==f&&(f=g[n.camelCase(b)])):f=g,f
+}}function S(a,b,c){if(n.acceptData(a)){var d,e,f=a.nodeType,g=f?n.cache:a,h=f?a[n.expando]:n.expando;if(g[h]){if(b&&(d=c?g[h]:g[h].data)){n.isArray(b)?b=b.concat(n.map(b,n.camelCase)):b in d?b=[b]:(b=n.camelCase(b),b=b in d?[b]:b.split(" ")),e=b.length;while(e--)delete d[b[e]];if(c?!Q(d):!n.isEmptyObject(d))return}(c||(delete g[h].data,Q(g[h])))&&(f?n.cleanData([a],!0):l.deleteExpando||g!=g.window?delete g[h]:g[h]=null)}}}n.extend({cache:{},noData:{"applet ":!0,"embed ":!0,"object ":"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"},hasData:function(a){return a=a.nodeType?n.cache[a[n.expando]]:a[n.expando],!!a&&!Q(a)},data:function(a,b,c){return R(a,b,c)},removeData:function(a,b){return S(a,b)},_data:function(a,b,c){return R(a,b,c,!0)},_removeData:function(a,b){return S(a,b,!0)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=n.data(f),1===f.nodeType&&!n._data(f,"parsedAttrs"))){c=g.length;while(c--)d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d]));n._data(f,"parsedAttrs",!0)}return e}return"object"==typeof a?this.each(function(){n.data(this,a)}):arguments.length>1?this.each(function(){n.data(this,a,b)}):f?P(f,a,n.data(f,a)):void 0},removeData:function(a){return this.each(function(){n.removeData(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=n._data(a,b),c&&(!d||n.isArray(c)?d=n._data(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return n._data(a,c)||n._data(a,c,{empty:n.Callbacks("once memory").add(function(){n._removeData(a,b+"queue"),n._removeData(a,c)})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.length<c?n.queue(this[0],a):void 0===b?this:this.each(function(){var c=n.queue(this,a,b);n._queueHooks(this,a),"fx"===a&&"inprogress"!==c[0]&&n.dequeue(this,a)})},dequeue:function(a){return this.each(function(){n.dequeue(this,a)})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,b){var c,d=1,e=n.Deferred(),f=this,g=this.length,h=function(){--d||e.resolveWith(f,[f])};"string"!=typeof a&&(b=a,a=void 0),a=a||"fx";while(g--)c=n._data(f[g],a+"queueHooks"),c&&c.empty&&(d++,c.empty.add(h));return h(),e.promise(b)}});var T=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,U=["Top","Right","Bottom","Left"],V=function(a,b){return a=b||a,"none"===n.css(a,"display")||!n.contains(a.ownerDocument,a)},W=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f},X=/^(?:checkbox|radio)$/i;!function(){var a=z.createDocumentFragment(),b=z.createElement("div"),c=z.createElement("input");if(b.setAttribute("className","t"),b.innerHTML="  <link/><table></table><a href='/a'>a</a>",l.leadingWhitespace=3===b.firstChild.nodeType,l.tbody=!b.getElementsByTagName("tbody").length,l.htmlSerialize=!!b.getElementsByTagName("link").length,l.html5Clone="<:nav></:nav>"!==z.createElement("nav").cloneNode(!0).outerHTML,c.type="checkbox",c.checked=!0,a.appendChild(c),l.appendChecked=c.checked,b.innerHTML="<textarea>x</textarea>",l.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue,a.appendChild(b),b.innerHTML="<input type='radio' checked='checked' name='t'/>",l.checkClone=b.cloneNode(!0).cloneNode(!0).lastChild.checked,l.noCloneEvent=!0,b.attachEvent&&(b.attachEvent("onclick",function(){l.noCloneEvent=!1}),b.cloneNode(!0).click()),null==l.deleteExpando){l.deleteExpando=!0;try{delete b.test}catch(d){l.deleteExpando=!1}}a=b=c=null}(),function(){var b,c,d=z.createElement("div");for(b in{submit:!0,change:!0,focusin:!0})c="on"+b,(l[b+"Bubbles"]=c in a)||(d.setAttribute(c,"t"),l[b+"Bubbles"]=d.attributes[c].expando===!1);d=null}();var Y=/^(?:input|select|textarea)$/i,Z=/^key/,$=/^(?:mouse|contextmenu)|click/,_=/^(?:focusinfocus|focusoutblur)$/,ab=/^([^.]*)(?:\.(.+)|)$/;function bb(){return!0}function cb(){return!1}function db(){try{return z.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n._data(a);if(r){c.handler&&(i=c,c=i.handler,e=i.selector),c.guid||(c.guid=n.guid++),(g=r.events)||(g=r.events={}),(k=r.handle)||(k=r.handle=function(a){return typeof n===L||a&&n.event.triggered===a.type?void 0:n.event.dispatch.apply(k.elem,arguments)},k.elem=a),b=(b||"").match(F)||[""],h=b.length;while(h--)f=ab.exec(b[h])||[],o=q=f[1],p=(f[2]||"").split(".").sort(),o&&(j=n.event.special[o]||{},o=(e?j.delegateType:j.bindType)||o,j=n.event.special[o]||{},l=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},i),(m=g[o])||(m=g[o]=[],m.delegateCount=0,j.setup&&j.setup.call(a,d,p,k)!==!1||(a.addEventListener?a.addEventListener(o,k,!1):a.attachEvent&&a.attachEvent("on"+o,k))),j.add&&(j.add.call(a,l),l.handler.guid||(l.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,l):m.push(l),n.event.global[o]=!0);a=null}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=n.hasData(a)&&n._data(a);if(r&&(k=r.events)){b=(b||"").match(F)||[""],j=b.length;while(j--)if(h=ab.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=k[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),i=f=m.length;while(f--)g=m[f],!e&&q!==g.origType||c&&c.guid!==g.guid||h&&!h.test(g.namespace)||d&&d!==g.selector&&("**"!==d||!g.selector)||(m.splice(f,1),g.selector&&m.delegateCount--,l.remove&&l.remove.call(a,g));i&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete k[o])}else for(o in k)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(k)&&(delete r.handle,n._removeData(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,l,m,o=[d||z],p=j.call(b,"type")?b.type:b,q=j.call(b,"namespace")?b.namespace.split("."):[];if(h=l=d=d||z,3!==d.nodeType&&8!==d.nodeType&&!_.test(p+n.event.triggered)&&(p.indexOf(".")>=0&&(q=p.split("."),p=q.shift(),q.sort()),g=p.indexOf(":")<0&&"on"+p,b=b[n.expando]?b:new n.Event(p,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=q.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+q.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),k=n.event.special[p]||{},e||!k.trigger||k.trigger.apply(d,c)!==!1)){if(!e&&!k.noBubble&&!n.isWindow(d)){for(i=k.delegateType||p,_.test(i+p)||(h=h.parentNode);h;h=h.parentNode)o.push(h),l=h;l===(d.ownerDocument||z)&&o.push(l.defaultView||l.parentWindow||a)}m=0;while((h=o[m++])&&!b.isPropagationStopped())b.type=m>1?i:k.bindType||p,f=(n._data(h,"events")||{})[b.type]&&n._data(h,"handle"),f&&f.apply(h,c),f=g&&h[g],f&&f.apply&&n.acceptData(h)&&(b.result=f.apply(h,c),b.result===!1&&b.preventDefault());if(b.type=p,!e&&!b.isDefaultPrevented()&&(!k._default||k._default.apply(o.pop(),c)===!1)&&n.acceptData(d)&&g&&d[p]&&!n.isWindow(d)){l=d[g],l&&(d[g]=null),n.event.triggered=p;try{d[p]()}catch(r){}n.event.triggered=void 0,l&&(d[g]=l)}return b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(n._data(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,g=0;while((e=f.handlers[g++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(e.namespace))&&(a.handleObj=e,a.data=e.data,c=((n.event.special[e.origType]||{}).handle||e.handler).apply(f.elem,i),void 0!==c&&(a.result=c)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!=this;i=i.parentNode||this)if(1===i.nodeType&&(i.disabled!==!0||"click"!==a.type)){for(e=[],f=0;h>f;f++)d=b[f],c=d.selector+" ",void 0===e[c]&&(e[c]=d.needsContext?n(c,this).index(i)>=0:n.find(c,this,null,[i]).length),e[c]&&e.push(d);e.length&&g.push({elem:i,handlers:e})}return h<b.length&&g.push({elem:this,handlers:b.slice(h)}),g},fix:function(a){if(a[n.expando])return a;var b,c,d,e=a.type,f=a,g=this.fixHooks[e];g||(this.fixHooks[e]=g=$.test(e)?this.mouseHooks:Z.test(e)?this.keyHooks:{}),d=g.props?this.props.concat(g.props):this.props,a=new n.Event(f),b=d.length;while(b--)c=d[b],a[c]=f[c];return a.target||(a.target=f.srcElement||z),3===a.target.nodeType&&(a.target=a.target.parentNode),a.metaKey=!!a.metaKey,g.filter?g.filter(a,f):a},props:"altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){return null==a.which&&(a.which=null!=b.charCode?b.charCode:b.keyCode),a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,b){var c,d,e,f=b.button,g=b.fromElement;return null==a.pageX&&null!=b.clientX&&(d=a.target.ownerDocument||z,e=d.documentElement,c=d.body,a.pageX=b.clientX+(e&&e.scrollLeft||c&&c.scrollLeft||0)-(e&&e.clientLeft||c&&c.clientLeft||0),a.pageY=b.clientY+(e&&e.scrollTop||c&&c.scrollTop||0)-(e&&e.clientTop||c&&c.clientTop||0)),!a.relatedTarget&&g&&(a.relatedTarget=g===a.target?b.toElement:g),a.which||void 0===f||(a.which=1&f?1:2&f?3:4&f?2:0),a}},special:{load:{noBubble:!0},focus:{trigger:function(){if(this!==db()&&this.focus)try{return this.focus(),!1}catch(a){}},delegateType:"focusin"},blur:{trigger:function(){return this===db()&&this.blur?(this.blur(),!1):void 0},delegateType:"focusout"},click:{trigger:function(){return n.nodeName(this,"input")&&"checkbox"===this.type&&this.click?(this.click(),!1):void 0},_default:function(a){return n.nodeName(a.target,"a")}},beforeunload:{postDispatch:function(a){void 0!==a.result&&(a.originalEvent.returnValue=a.result)}}},simulate:function(a,b,c,d){var e=n.extend(new n.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?n.event.trigger(e,null,b):n.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},n.removeEvent=z.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){var d="on"+b;a.detachEvent&&(typeof a[d]===L&&(a[d]=null),a.detachEvent(d,c))},n.Event=function(a,b){return this instanceof n.Event?(a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||void 0===a.defaultPrevented&&(a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault())?bb:cb):this.type=a,b&&n.extend(this,b),this.timeStamp=a&&a.timeStamp||n.now(),void(this[n.expando]=!0)):new n.Event(a,b)},n.Event.prototype={isDefaultPrevented:cb,isPropagationStopped:cb,isImmediatePropagationStopped:cb,preventDefault:function(){var a=this.originalEvent;this.isDefaultPrevented=bb,a&&(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){var a=this.originalEvent;this.isPropagationStopped=bb,a&&(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=bb,this.stopPropagation()}},n.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){n.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c,d=this,e=a.relatedTarget,f=a.handleObj;return(!e||e!==d&&!n.contains(d,e))&&(a.type=f.origType,c=f.handler.apply(this,arguments),a.type=b),c}}}),l.submitBubbles||(n.event.special.submit={setup:function(){return n.nodeName(this,"form")?!1:void n.event.add(this,"click._submit keypress._submit",function(a){var b=a.target,c=n.nodeName(b,"input")||n.nodeName(b,"button")?b.form:void 0;c&&!n._data(c,"submitBubbles")&&(n.event.add(c,"submit._submit",function(a){a._submit_bubble=!0}),n._data(c,"submitBubbles",!0))})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&n.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){return n.nodeName(this,"form")?!1:void n.event.remove(this,"._submit")}}),l.changeBubbles||(n.event.special.change={setup:function(){return Y.test(this.nodeName)?(("checkbox"===this.type||"radio"===this.type)&&(n.event.add(this,"propertychange._change",function(a){"checked"===a.originalEvent.propertyName&&(this._just_changed=!0)}),n.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1),n.event.simulate("change",this,a,!0)})),!1):void n.event.add(this,"beforeactivate._change",function(a){var b=a.target;Y.test(b.nodeName)&&!n._data(b,"changeBubbles")&&(n.event.add(b,"change._change",function(a){!this.parentNode||a.isSimulated||a.isTrigger||n.event.simulate("change",this.parentNode,a,!0)}),n._data(b,"changeBubbles",!0))})},handle:function(a){var b=a.target;return this!==b||a.isSimulated||a.isTrigger||"radio"!==b.type&&"checkbox"!==b.type?a.handleObj.handler.apply(this,arguments):void 0},teardown:function(){return n.event.remove(this,"._change"),!Y.test(this.nodeName)}}),l.focusinBubbles||n.each({focus:"focusin",blur:"focusout"},function(a,b){var c=function(a){n.event.simulate(b,a.target,n.event.fix(a),!0)};n.event.special[b]={setup:function(){var d=this.ownerDocument||this,e=n._data(d,b);e||d.addEventListener(a,c,!0),n._data(d,b,(e||0)+1)},teardown:function(){var d=this.ownerDocument||this,e=n._data(d,b)-1;e?n._data(d,b,e):(d.removeEventListener(a,c,!0),n._removeData(d,b))}}}),n.fn.extend({on:function(a,b,c,d,e){var f,g;if("object"==typeof a){"string"!=typeof b&&(c=c||b,b=void 0);for(f in a)this.on(f,b,c,a[f],e);return this}if(null==c&&null==d?(d=b,c=b=void 0):null==d&&("string"==typeof b?(d=c,c=void 0):(d=c,c=b,b=void 0)),d===!1)d=cb;else if(!d)return this;return 1===e&&(g=d,d=function(a){return n().off(a),g.apply(this,arguments)},d.guid=g.guid||(g.guid=n.guid++)),this.each(function(){n.event.add(this,a,d,c,b)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,b,c){var d,e;if(a&&a.preventDefault&&a.handleObj)return d=a.handleObj,n(a.delegateTarget).off(d.namespace?d.origType+"."+d.namespace:d.origType,d.selector,d.handler),this;if("object"==typeof a){for(e in a)this.off(e,b,a[e]);return this}return(b===!1||"function"==typeof b)&&(c=b,b=void 0),c===!1&&(c=cb),this.each(function(){n.event.remove(this,a,c,b)})},trigger:function(a,b){return this.each(function(){n.event.trigger(a,b,this)})},triggerHandler:function(a,b){var c=this[0];return c?n.event.trigger(a,b,c,!0):void 0}});function eb(a){var b=fb.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}var fb="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",gb=/ jQuery\d+="(?:null|\d+)"/g,hb=new RegExp("<(?:"+fb+")[\\s/>]","i"),ib=/^\s+/,jb=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,kb=/<([\w:]+)/,lb=/<tbody/i,mb=/<|&#?\w+;/,nb=/<(?:script|style|link)/i,ob=/checked\s*(?:[^=]|=\s*.checked.)/i,pb=/^$|\/(?:java|ecma)script/i,qb=/^true\/(.*)/,rb=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g,sb={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],area:[1,"<map>","</map>"],param:[1,"<object>","</object>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:l.htmlSerialize?[0,"",""]:[1,"X<div>","</div>"]},tb=eb(z),ub=tb.appendChild(z.createElement("div"));sb.optgroup=sb.option,sb.tbody=sb.tfoot=sb.colgroup=sb.caption=sb.thead,sb.th=sb.td;function vb(a,b){var c,d,e=0,f=typeof a.getElementsByTagName!==L?a.getElementsByTagName(b||"*"):typeof a.querySelectorAll!==L?a.querySelectorAll(b||"*"):void 0;if(!f)for(f=[],c=a.childNodes||a;null!=(d=c[e]);e++)!b||n.nodeName(d,b)?f.push(d):n.merge(f,vb(d,b));return void 0===b||b&&n.nodeName(a,b)?n.merge([a],f):f}function wb(a){X.test(a.type)&&(a.defaultChecked=a.checked)}function xb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function yb(a){return a.type=(null!==n.find.attr(a,"type"))+"/"+a.type,a}function zb(a){var b=qb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function Ab(a,b){for(var c,d=0;null!=(c=a[d]);d++)n._data(c,"globalEval",!b||n._data(b[d],"globalEval"))}function Bb(a,b){if(1===b.nodeType&&n.hasData(a)){var c,d,e,f=n._data(a),g=n._data(b,f),h=f.events;if(h){delete g.handle,g.events={};for(c in h)for(d=0,e=h[c].length;e>d;d++)n.event.add(b,c,h[c][d])}g.data&&(g.data=n.extend({},g.data))}}function Cb(a,b){var c,d,e;if(1===b.nodeType){if(c=b.nodeName.toLowerCase(),!l.noCloneEvent&&b[n.expando]){e=n._data(b);for(d in e.events)n.removeEvent(b,d,e.handle);b.removeAttribute(n.expando)}"script"===c&&b.text!==a.text?(yb(b).text=a.text,zb(b)):"object"===c?(b.parentNode&&(b.outerHTML=a.outerHTML),l.html5Clone&&a.innerHTML&&!n.trim(b.innerHTML)&&(b.innerHTML=a.innerHTML)):"input"===c&&X.test(a.type)?(b.defaultChecked=b.checked=a.checked,b.value!==a.value&&(b.value=a.value)):"option"===c?b.defaultSelected=b.selected=a.defaultSelected:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}}n.extend({clone:function(a,b,c){var d,e,f,g,h,i=n.contains(a.ownerDocument,a);if(l.html5Clone||n.isXMLDoc(a)||!hb.test("<"+a.nodeName+">")?f=a.cloneNode(!0):(ub.innerHTML=a.outerHTML,ub.removeChild(f=ub.firstChild)),!(l.noCloneEvent&&l.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(d=vb(f),h=vb(a),g=0;null!=(e=h[g]);++g)d[g]&&Cb(e,d[g]);if(b)if(c)for(h=h||vb(a),d=d||vb(f),g=0;null!=(e=h[g]);g++)Bb(e,d[g]);else Bb(a,f);return d=vb(f,"script"),d.length>0&&Ab(d,!i&&vb(a,"script")),d=h=e=null,f},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k,m=a.length,o=eb(b),p=[],q=0;m>q;q++)if(f=a[q],f||0===f)if("object"===n.type(f))n.merge(p,f.nodeType?[f]:f);else if(mb.test(f)){h=h||o.appendChild(b.createElement("div")),i=(kb.exec(f)||["",""])[1].toLowerCase(),k=sb[i]||sb._default,h.innerHTML=k[1]+f.replace(jb,"<$1></$2>")+k[2],e=k[0];while(e--)h=h.lastChild;if(!l.leadingWhitespace&&ib.test(f)&&p.push(b.createTextNode(ib.exec(f)[0])),!l.tbody){f="table"!==i||lb.test(f)?"<table>"!==k[1]||lb.test(f)?0:h:h.firstChild,e=f&&f.childNodes.length;while(e--)n.nodeName(j=f.childNodes[e],"tbody")&&!j.childNodes.length&&f.removeChild(j)}n.merge(p,h.childNodes),h.textContent="";while(h.firstChild)h.removeChild(h.firstChild);h=o.lastChild}else p.push(b.createTextNode(f));h&&o.removeChild(h),l.appendChecked||n.grep(vb(p,"input"),wb),q=0;while(f=p[q++])if((!d||-1===n.inArray(f,d))&&(g=n.contains(f.ownerDocument,f),h=vb(o.appendChild(f),"script"),g&&Ab(h),c)){e=0;while(f=h[e++])pb.test(f.type||"")&&c.push(f)}return h=null,o},cleanData:function(a,b){for(var d,e,f,g,h=0,i=n.expando,j=n.cache,k=l.deleteExpando,m=n.event.special;null!=(d=a[h]);h++)if((b||n.acceptData(d))&&(f=d[i],g=f&&j[f])){if(g.events)for(e in g.events)m[e]?n.event.remove(d,e):n.removeEvent(d,e,g.handle);j[f]&&(delete j[f],k?delete d[i]:typeof d.removeAttribute!==L?d.removeAttribute(i):d[i]=null,c.push(f))}}}),n.fn.extend({text:function(a){return W(this,function(a){return void 0===a?n.text(this):this.empty().append((this[0]&&this[0].ownerDocument||z).createTextNode(a))},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=xb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(vb(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&Ab(vb(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++){1===a.nodeType&&n.cleanData(vb(a,!1));while(a.firstChild)a.removeChild(a.firstChild);a.options&&n.nodeName(a,"select")&&(a.options.length=0)}return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return W(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a)return 1===b.nodeType?b.innerHTML.replace(gb,""):void 0;if(!("string"!=typeof a||nb.test(a)||!l.htmlSerialize&&hb.test(a)||!l.leadingWhitespace&&ib.test(a)||sb[(kb.exec(a)||["",""])[1].toLowerCase()])){a=a.replace(jb,"<$1></$2>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(vb(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(vb(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,k=this.length,m=this,o=k-1,p=a[0],q=n.isFunction(p);if(q||k>1&&"string"==typeof p&&!l.checkClone&&ob.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(k&&(i=n.buildFragment(a,this[0].ownerDocument,!1,this),c=i.firstChild,1===i.childNodes.length&&(i=c),c)){for(g=n.map(vb(i,"script"),yb),f=g.length;k>j;j++)d=i,j!==o&&(d=n.clone(d,!0,!0),f&&n.merge(g,vb(d,"script"))),b.call(this[j],d,j);if(f)for(h=g[g.length-1].ownerDocument,n.map(g,zb),j=0;f>j;j++)d=g[j],pb.test(d.type||"")&&!n._data(d,"globalEval")&&n.contains(h,d)&&(d.src?n._evalUrl&&n._evalUrl(d.src):n.globalEval((d.text||d.textContent||d.innerHTML||"").replace(rb,"")));i=c=null}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=0,e=[],g=n(a),h=g.length-1;h>=d;d++)c=d===h?this:this.clone(!0),n(g[d])[b](c),f.apply(e,c.get());return this.pushStack(e)}});var Db,Eb={};function Fb(b,c){var d=n(c.createElement(b)).appendTo(c.body),e=a.getDefaultComputedStyle?a.getDefaultComputedStyle(d[0]).display:n.css(d[0],"display");return d.detach(),e}function Gb(a){var b=z,c=Eb[a];return c||(c=Fb(a,b),"none"!==c&&c||(Db=(Db||n("<iframe frameborder='0' width='0' height='0'/>")).appendTo(b.documentElement),b=(Db[0].contentWindow||Db[0].contentDocument).document,b.write(),b.close(),c=Fb(a,b),Db.detach()),Eb[a]=c),c}!function(){var a,b,c=z.createElement("div"),d="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";c.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=c.getElementsByTagName("a")[0],a.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(a.style.opacity),l.cssFloat=!!a.style.cssFloat,c.style.backgroundClip="content-box",c.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===c.style.backgroundClip,a=c=null,l.shrinkWrapBlocks=function(){var a,c,e,f;if(null==b){if(a=z.getElementsByTagName("body")[0],!a)return;f="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",c=z.createElement("div"),e=z.createElement("div"),a.appendChild(c).appendChild(e),b=!1,typeof e.style.zoom!==L&&(e.style.cssText=d+";width:1px;padding:1px;zoom:1",e.innerHTML="<div></div>",e.firstChild.style.width="5px",b=3!==e.offsetWidth),a.removeChild(c),a=c=e=null}return b}}();var Hb=/^margin/,Ib=new RegExp("^("+T+")(?!px)[a-z%]+$","i"),Jb,Kb,Lb=/^(top|right|bottom|left)$/;a.getComputedStyle?(Jb=function(a){return a.ownerDocument.defaultView.getComputedStyle(a,null)},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c.getPropertyValue(b)||c[b]:void 0,c&&(""!==g||n.contains(a.ownerDocument,a)||(g=n.style(a,b)),Ib.test(g)&&Hb.test(b)&&(d=h.width,e=h.minWidth,f=h.maxWidth,h.minWidth=h.maxWidth=h.width=g,g=c.width,h.width=d,h.minWidth=e,h.maxWidth=f)),void 0===g?g:g+""}):z.documentElement.currentStyle&&(Jb=function(a){return a.currentStyle},Kb=function(a,b,c){var d,e,f,g,h=a.style;return c=c||Jb(a),g=c?c[b]:void 0,null==g&&h&&h[b]&&(g=h[b]),Ib.test(g)&&!Lb.test(b)&&(d=h.left,e=a.runtimeStyle,f=e&&e.left,f&&(e.left=a.currentStyle.left),h.left="fontSize"===b?"1em":g,g=h.pixelLeft+"px",h.left=d,f&&(e.left=f)),void 0===g?g:g+""||"auto"});function Mb(a,b){return{get:function(){var c=a();if(null!=c)return c?void delete this.get:(this.get=b).apply(this,arguments)}}}!function(){var b,c,d,e,f,g,h=z.createElement("div"),i="border:0;width:0;height:0;position:absolute;top:0;left:-9999px",j="-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;display:block;padding:0;margin:0;border:0";h.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",b=h.getElementsByTagName("a")[0],b.style.cssText="float:left;opacity:.5",l.opacity=/^0.5/.test(b.style.opacity),l.cssFloat=!!b.style.cssFloat,h.style.backgroundClip="content-box",h.cloneNode(!0).style.backgroundClip="",l.clearCloneStyle="content-box"===h.style.backgroundClip,b=h=null,n.extend(l,{reliableHiddenOffsets:function(){if(null!=c)return c;var a,b,d,e=z.createElement("div"),f=z.getElementsByTagName("body")[0];if(f)return e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=z.createElement("div"),a.style.cssText=i,f.appendChild(a).appendChild(e),e.innerHTML="<table><tr><td></td><td>t</td></tr></table>",b=e.getElementsByTagName("td"),b[0].style.cssText="padding:0;margin:0;border:0;display:none",d=0===b[0].offsetHeight,b[0].style.display="",b[1].style.display="none",c=d&&0===b[0].offsetHeight,f.removeChild(a),e=f=null,c},boxSizing:function(){return null==d&&k(),d},boxSizingReliable:function(){return null==e&&k(),e},pixelPosition:function(){return null==f&&k(),f},reliableMarginRight:function(){var b,c,d,e;if(null==g&&a.getComputedStyle){if(b=z.getElementsByTagName("body")[0],!b)return;c=z.createElement("div"),d=z.createElement("div"),c.style.cssText=i,b.appendChild(c).appendChild(d),e=d.appendChild(z.createElement("div")),e.style.cssText=d.style.cssText=j,e.style.marginRight=e.style.width="0",d.style.width="1px",g=!parseFloat((a.getComputedStyle(e,null)||{}).marginRight),b.removeChild(c)}return g}});function k(){var b,c,h=z.getElementsByTagName("body")[0];h&&(b=z.createElement("div"),c=z.createElement("div"),b.style.cssText=i,h.appendChild(b).appendChild(c),c.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:absolute;display:block;padding:1px;border:1px;width:4px;margin-top:1%;top:1%",n.swap(h,null!=h.style.zoom?{zoom:1}:{},function(){d=4===c.offsetWidth}),e=!0,f=!1,g=!0,a.getComputedStyle&&(f="1%"!==(a.getComputedStyle(c,null)||{}).top,e="4px"===(a.getComputedStyle(c,null)||{width:"4px"}).width),h.removeChild(b),c=h=null)}}(),n.swap=function(a,b,c,d){var e,f,g={};for(f in b)g[f]=a.style[f],a.style[f]=b[f];e=c.apply(a,d||[]);for(f in b)a.style[f]=g[f];return e};var Nb=/alpha\([^)]*\)/i,Ob=/opacity\s*=\s*([^)]*)/,Pb=/^(none|table(?!-c[ea]).+)/,Qb=new RegExp("^("+T+")(.*)$","i"),Rb=new RegExp("^([+-])=("+T+")","i"),Sb={position:"absolute",visibility:"hidden",display:"block"},Tb={letterSpacing:0,fontWeight:400},Ub=["Webkit","O","Moz","ms"];function Vb(a,b){if(b in a)return b;var c=b.charAt(0).toUpperCase()+b.slice(1),d=b,e=Ub.length;while(e--)if(b=Ub[e]+c,b in a)return b;return d}function Wb(a,b){for(var c,d,e,f=[],g=0,h=a.length;h>g;g++)d=a[g],d.style&&(f[g]=n._data(d,"olddisplay"),c=d.style.display,b?(f[g]||"none"!==c||(d.style.display=""),""===d.style.display&&V(d)&&(f[g]=n._data(d,"olddisplay",Gb(d.nodeName)))):f[g]||(e=V(d),(c&&"none"!==c||!e)&&n._data(d,"olddisplay",e?c:n.css(d,"display"))));for(g=0;h>g;g++)d=a[g],d.style&&(b&&"none"!==d.style.display&&""!==d.style.display||(d.style.display=b?f[g]||"":"none"));return a}function Xb(a,b,c){var d=Qb.exec(b);return d?Math.max(0,d[1]-(c||0))+(d[2]||"px"):b}function Yb(a,b,c,d,e){for(var f=c===(d?"border":"content")?4:"width"===b?1:0,g=0;4>f;f+=2)"margin"===c&&(g+=n.css(a,c+U[f],!0,e)),d?("content"===c&&(g-=n.css(a,"padding"+U[f],!0,e)),"margin"!==c&&(g-=n.css(a,"border"+U[f]+"Width",!0,e))):(g+=n.css(a,"padding"+U[f],!0,e),"padding"!==c&&(g+=n.css(a,"border"+U[f]+"Width",!0,e)));return g}function Zb(a,b,c){var d=!0,e="width"===b?a.offsetWidth:a.offsetHeight,f=Jb(a),g=l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,f);if(0>=e||null==e){if(e=Kb(a,b,f),(0>e||null==e)&&(e=a.style[b]),Ib.test(e))return e;d=g&&(l.boxSizingReliable()||e===a.style[b]),e=parseFloat(e)||0}return e+Yb(a,b,c||(g?"border":"content"),d,f)+"px"}n.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=Kb(a,"opacity");return""===c?"1":c}}}},cssNumber:{columnCount:!0,fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":l.cssFloat?"cssFloat":"styleFloat"},style:function(a,b,c,d){if(a&&3!==a.nodeType&&8!==a.nodeType&&a.style){var e,f,g,h=n.camelCase(b),i=a.style;if(b=n.cssProps[h]||(n.cssProps[h]=Vb(i,h)),g=n.cssHooks[b]||n.cssHooks[h],void 0===c)return g&&"get"in g&&void 0!==(e=g.get(a,!1,d))?e:i[b];if(f=typeof c,"string"===f&&(e=Rb.exec(c))&&(c=(e[1]+1)*e[2]+parseFloat(n.css(a,b)),f="number"),null!=c&&c===c&&("number"!==f||n.cssNumber[h]||(c+="px"),l.clearCloneStyle||""!==c||0!==b.indexOf("background")||(i[b]="inherit"),!(g&&"set"in g&&void 0===(c=g.set(a,c,d)))))try{i[b]="",i[b]=c}catch(j){}}},css:function(a,b,c,d){var e,f,g,h=n.camelCase(b);return b=n.cssProps[h]||(n.cssProps[h]=Vb(a.style,h)),g=n.cssHooks[b]||n.cssHooks[h],g&&"get"in g&&(f=g.get(a,!0,c)),void 0===f&&(f=Kb(a,b,d)),"normal"===f&&b in Tb&&(f=Tb[b]),""===c||c?(e=parseFloat(f),c===!0||n.isNumeric(e)?e||0:f):f}}),n.each(["height","width"],function(a,b){n.cssHooks[b]={get:function(a,c,d){return c?0===a.offsetWidth&&Pb.test(n.css(a,"display"))?n.swap(a,Sb,function(){return Zb(a,b,d)}):Zb(a,b,d):void 0},set:function(a,c,d){var e=d&&Jb(a);return Xb(a,c,d?Yb(a,b,d,l.boxSizing()&&"border-box"===n.css(a,"boxSizing",!1,e),e):0)}}}),l.opacity||(n.cssHooks.opacity={get:function(a,b){return Ob.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=n.isNumeric(b)?"alpha(opacity="+100*b+")":"",f=d&&d.filter||c.filter||"";c.zoom=1,(b>=1||""===b)&&""===n.trim(f.replace(Nb,""))&&c.removeAttribute&&(c.removeAttribute("filter"),""===b||d&&!d.filter)||(c.filter=Nb.test(f)?f.replace(Nb,e):f+" "+e)}}),n.cssHooks.marginRight=Mb(l.reliableMarginRight,function(a,b){return b?n.swap(a,{display:"inline-block"},Kb,[a,"marginRight"]):void 0}),n.each({margin:"",padding:"",border:"Width"},function(a,b){n.cssHooks[a+b]={expand:function(c){for(var d=0,e={},f="string"==typeof c?c.split(" "):[c];4>d;d++)e[a+U[d]+b]=f[d]||f[d-2]||f[0];return e}},Hb.test(a)||(n.cssHooks[a+b].set=Xb)}),n.fn.extend({css:function(a,b){return W(this,function(a,b,c){var d,e,f={},g=0;if(n.isArray(b)){for(d=Jb(a),e=b.length;e>g;g++)f[b[g]]=n.css(a,b[g],!1,d);return f}return void 0!==c?n.style(a,b,c):n.css(a,b)
+},a,b,arguments.length>1)},show:function(){return Wb(this,!0)},hide:function(){return Wb(this)},toggle:function(a){return"boolean"==typeof a?a?this.show():this.hide():this.each(function(){V(this)?n(this).show():n(this).hide()})}});function $b(a,b,c,d,e){return new $b.prototype.init(a,b,c,d,e)}n.Tween=$b,$b.prototype={constructor:$b,init:function(a,b,c,d,e,f){this.elem=a,this.prop=c,this.easing=e||"swing",this.options=b,this.start=this.now=this.cur(),this.end=d,this.unit=f||(n.cssNumber[c]?"":"px")},cur:function(){var a=$b.propHooks[this.prop];return a&&a.get?a.get(this):$b.propHooks._default.get(this)},run:function(a){var b,c=$b.propHooks[this.prop];return this.pos=b=this.options.duration?n.easing[this.easing](a,this.options.duration*a,0,1,this.options.duration):a,this.now=(this.end-this.start)*b+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),c&&c.set?c.set(this):$b.propHooks._default.set(this),this}},$b.prototype.init.prototype=$b.prototype,$b.propHooks={_default:{get:function(a){var b;return null==a.elem[a.prop]||a.elem.style&&null!=a.elem.style[a.prop]?(b=n.css(a.elem,a.prop,""),b&&"auto"!==b?b:0):a.elem[a.prop]},set:function(a){n.fx.step[a.prop]?n.fx.step[a.prop](a):a.elem.style&&(null!=a.elem.style[n.cssProps[a.prop]]||n.cssHooks[a.prop])?n.style(a.elem,a.prop,a.now+a.unit):a.elem[a.prop]=a.now}}},$b.propHooks.scrollTop=$b.propHooks.scrollLeft={set:function(a){a.elem.nodeType&&a.elem.parentNode&&(a.elem[a.prop]=a.now)}},n.easing={linear:function(a){return a},swing:function(a){return.5-Math.cos(a*Math.PI)/2}},n.fx=$b.prototype.init,n.fx.step={};var _b,ac,bc=/^(?:toggle|show|hide)$/,cc=new RegExp("^(?:([+-])=|)("+T+")([a-z%]*)$","i"),dc=/queueHooks$/,ec=[jc],fc={"*":[function(a,b){var c=this.createTween(a,b),d=c.cur(),e=cc.exec(b),f=e&&e[3]||(n.cssNumber[a]?"":"px"),g=(n.cssNumber[a]||"px"!==f&&+d)&&cc.exec(n.css(c.elem,a)),h=1,i=20;if(g&&g[3]!==f){f=f||g[3],e=e||[],g=+d||1;do h=h||".5",g/=h,n.style(c.elem,a,g+f);while(h!==(h=c.cur()/d)&&1!==h&&--i)}return e&&(g=c.start=+g||+d||0,c.unit=f,c.end=e[1]?g+(e[1]+1)*e[2]:+e[2]),c}]};function gc(){return setTimeout(function(){_b=void 0}),_b=n.now()}function hc(a,b){var c,d={height:a},e=0;for(b=b?1:0;4>e;e+=2-b)c=U[e],d["margin"+c]=d["padding"+c]=a;return b&&(d.opacity=d.width=a),d}function ic(a,b,c){for(var d,e=(fc[b]||[]).concat(fc["*"]),f=0,g=e.length;g>f;f++)if(d=e[f].call(c,b,a))return d}function jc(a,b,c){var d,e,f,g,h,i,j,k,m=this,o={},p=a.style,q=a.nodeType&&V(a),r=n._data(a,"fxshow");c.queue||(h=n._queueHooks(a,"fx"),null==h.unqueued&&(h.unqueued=0,i=h.empty.fire,h.empty.fire=function(){h.unqueued||i()}),h.unqueued++,m.always(function(){m.always(function(){h.unqueued--,n.queue(a,"fx").length||h.empty.fire()})})),1===a.nodeType&&("height"in b||"width"in b)&&(c.overflow=[p.overflow,p.overflowX,p.overflowY],j=n.css(a,"display"),k=Gb(a.nodeName),"none"===j&&(j=k),"inline"===j&&"none"===n.css(a,"float")&&(l.inlineBlockNeedsLayout&&"inline"!==k?p.zoom=1:p.display="inline-block")),c.overflow&&(p.overflow="hidden",l.shrinkWrapBlocks()||m.always(function(){p.overflow=c.overflow[0],p.overflowX=c.overflow[1],p.overflowY=c.overflow[2]}));for(d in b)if(e=b[d],bc.exec(e)){if(delete b[d],f=f||"toggle"===e,e===(q?"hide":"show")){if("show"!==e||!r||void 0===r[d])continue;q=!0}o[d]=r&&r[d]||n.style(a,d)}if(!n.isEmptyObject(o)){r?"hidden"in r&&(q=r.hidden):r=n._data(a,"fxshow",{}),f&&(r.hidden=!q),q?n(a).show():m.done(function(){n(a).hide()}),m.done(function(){var b;n._removeData(a,"fxshow");for(b in o)n.style(a,b,o[b])});for(d in o)g=ic(q?r[d]:0,d,m),d in r||(r[d]=g.start,q&&(g.end=g.start,g.start="width"===d||"height"===d?1:0))}}function kc(a,b){var c,d,e,f,g;for(c in a)if(d=n.camelCase(c),e=b[d],f=a[c],n.isArray(f)&&(e=f[1],f=a[c]=f[0]),c!==d&&(a[d]=f,delete a[c]),g=n.cssHooks[d],g&&"expand"in g){f=g.expand(f),delete a[d];for(c in f)c in a||(a[c]=f[c],b[c]=e)}else b[d]=e}function lc(a,b,c){var d,e,f=0,g=ec.length,h=n.Deferred().always(function(){delete i.elem}),i=function(){if(e)return!1;for(var b=_b||gc(),c=Math.max(0,j.startTime+j.duration-b),d=c/j.duration||0,f=1-d,g=0,i=j.tweens.length;i>g;g++)j.tweens[g].run(f);return h.notifyWith(a,[j,f,c]),1>f&&i?c:(h.resolveWith(a,[j]),!1)},j=h.promise({elem:a,props:n.extend({},b),opts:n.extend(!0,{specialEasing:{}},c),originalProperties:b,originalOptions:c,startTime:_b||gc(),duration:c.duration,tweens:[],createTween:function(b,c){var d=n.Tween(a,j.opts,b,c,j.opts.specialEasing[b]||j.opts.easing);return j.tweens.push(d),d},stop:function(b){var c=0,d=b?j.tweens.length:0;if(e)return this;for(e=!0;d>c;c++)j.tweens[c].run(1);return b?h.resolveWith(a,[j,b]):h.rejectWith(a,[j,b]),this}}),k=j.props;for(kc(k,j.opts.specialEasing);g>f;f++)if(d=ec[f].call(j,a,k,j.opts))return d;return n.map(k,ic,j),n.isFunction(j.opts.start)&&j.opts.start.call(a,j),n.fx.timer(n.extend(i,{elem:a,anim:j,queue:j.opts.queue})),j.progress(j.opts.progress).done(j.opts.done,j.opts.complete).fail(j.opts.fail).always(j.opts.always)}n.Animation=n.extend(lc,{tweener:function(a,b){n.isFunction(a)?(b=a,a=["*"]):a=a.split(" ");for(var c,d=0,e=a.length;e>d;d++)c=a[d],fc[c]=fc[c]||[],fc[c].unshift(b)},prefilter:function(a,b){b?ec.unshift(a):ec.push(a)}}),n.speed=function(a,b,c){var d=a&&"object"==typeof a?n.extend({},a):{complete:c||!c&&b||n.isFunction(a)&&a,duration:a,easing:c&&b||b&&!n.isFunction(b)&&b};return d.duration=n.fx.off?0:"number"==typeof d.duration?d.duration:d.duration in n.fx.speeds?n.fx.speeds[d.duration]:n.fx.speeds._default,(null==d.queue||d.queue===!0)&&(d.queue="fx"),d.old=d.complete,d.complete=function(){n.isFunction(d.old)&&d.old.call(this),d.queue&&n.dequeue(this,d.queue)},d},n.fn.extend({fadeTo:function(a,b,c,d){return this.filter(V).css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){var e=n.isEmptyObject(a),f=n.speed(b,c,d),g=function(){var b=lc(this,n.extend({},a),f);(e||n._data(this,"finish"))&&b.stop(!0)};return g.finish=g,e||f.queue===!1?this.each(g):this.queue(f.queue,g)},stop:function(a,b,c){var d=function(a){var b=a.stop;delete a.stop,b(c)};return"string"!=typeof a&&(c=b,b=a,a=void 0),b&&a!==!1&&this.queue(a||"fx",[]),this.each(function(){var b=!0,e=null!=a&&a+"queueHooks",f=n.timers,g=n._data(this);if(e)g[e]&&g[e].stop&&d(g[e]);else for(e in g)g[e]&&g[e].stop&&dc.test(e)&&d(g[e]);for(e=f.length;e--;)f[e].elem!==this||null!=a&&f[e].queue!==a||(f[e].anim.stop(c),b=!1,f.splice(e,1));(b||!c)&&n.dequeue(this,a)})},finish:function(a){return a!==!1&&(a=a||"fx"),this.each(function(){var b,c=n._data(this),d=c[a+"queue"],e=c[a+"queueHooks"],f=n.timers,g=d?d.length:0;for(c.finish=!0,n.queue(this,a,[]),e&&e.stop&&e.stop.call(this,!0),b=f.length;b--;)f[b].elem===this&&f[b].queue===a&&(f[b].anim.stop(!0),f.splice(b,1));for(b=0;g>b;b++)d[b]&&d[b].finish&&d[b].finish.call(this);delete c.finish})}}),n.each(["toggle","show","hide"],function(a,b){var c=n.fn[b];n.fn[b]=function(a,d,e){return null==a||"boolean"==typeof a?c.apply(this,arguments):this.animate(hc(b,!0),a,d,e)}}),n.each({slideDown:hc("show"),slideUp:hc("hide"),slideToggle:hc("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){n.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),n.timers=[],n.fx.tick=function(){var a,b=n.timers,c=0;for(_b=n.now();c<b.length;c++)a=b[c],a()||b[c]!==a||b.splice(c--,1);b.length||n.fx.stop(),_b=void 0},n.fx.timer=function(a){n.timers.push(a),a()?n.fx.start():n.timers.pop()},n.fx.interval=13,n.fx.start=function(){ac||(ac=setInterval(n.fx.tick,n.fx.interval))},n.fx.stop=function(){clearInterval(ac),ac=null},n.fx.speeds={slow:600,fast:200,_default:400},n.fn.delay=function(a,b){return a=n.fx?n.fx.speeds[a]||a:a,b=b||"fx",this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},function(){var a,b,c,d,e=z.createElement("div");e.setAttribute("className","t"),e.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",a=e.getElementsByTagName("a")[0],c=z.createElement("select"),d=c.appendChild(z.createElement("option")),b=e.getElementsByTagName("input")[0],a.style.cssText="top:1px",l.getSetAttribute="t"!==e.className,l.style=/top/.test(a.getAttribute("style")),l.hrefNormalized="/a"===a.getAttribute("href"),l.checkOn=!!b.value,l.optSelected=d.selected,l.enctype=!!z.createElement("form").enctype,c.disabled=!0,l.optDisabled=!d.disabled,b=z.createElement("input"),b.setAttribute("value",""),l.input=""===b.getAttribute("value"),b.value="t",b.setAttribute("type","radio"),l.radioValue="t"===b.value,a=b=c=d=e=null}();var mc=/\r/g;n.fn.extend({val:function(a){var b,c,d,e=this[0];{if(arguments.length)return d=n.isFunction(a),this.each(function(c){var e;1===this.nodeType&&(e=d?a.call(this,c,n(this).val()):a,null==e?e="":"number"==typeof e?e+="":n.isArray(e)&&(e=n.map(e,function(a){return null==a?"":a+""})),b=n.valHooks[this.type]||n.valHooks[this.nodeName.toLowerCase()],b&&"set"in b&&void 0!==b.set(this,e,"value")||(this.value=e))});if(e)return b=n.valHooks[e.type]||n.valHooks[e.nodeName.toLowerCase()],b&&"get"in b&&void 0!==(c=b.get(e,"value"))?c:(c=e.value,"string"==typeof c?c.replace(mc,""):null==c?"":c)}}}),n.extend({valHooks:{option:{get:function(a){var b=n.find.attr(a,"value");return null!=b?b:n.text(a)}},select:{get:function(a){for(var b,c,d=a.options,e=a.selectedIndex,f="select-one"===a.type||0>e,g=f?null:[],h=f?e+1:d.length,i=0>e?h:f?e:0;h>i;i++)if(c=d[i],!(!c.selected&&i!==e||(l.optDisabled?c.disabled:null!==c.getAttribute("disabled"))||c.parentNode.disabled&&n.nodeName(c.parentNode,"optgroup"))){if(b=n(c).val(),f)return b;g.push(b)}return g},set:function(a,b){var c,d,e=a.options,f=n.makeArray(b),g=e.length;while(g--)if(d=e[g],n.inArray(n.valHooks.option.get(d),f)>=0)try{d.selected=c=!0}catch(h){d.scrollHeight}else d.selected=!1;return c||(a.selectedIndex=-1),e}}}}),n.each(["radio","checkbox"],function(){n.valHooks[this]={set:function(a,b){return n.isArray(b)?a.checked=n.inArray(n(a).val(),b)>=0:void 0}},l.checkOn||(n.valHooks[this].get=function(a){return null===a.getAttribute("value")?"on":a.value})});var nc,oc,pc=n.expr.attrHandle,qc=/^(?:checked|selected)$/i,rc=l.getSetAttribute,sc=l.input;n.fn.extend({attr:function(a,b){return W(this,n.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){n.removeAttr(this,a)})}}),n.extend({attr:function(a,b,c){var d,e,f=a.nodeType;if(a&&3!==f&&8!==f&&2!==f)return typeof a.getAttribute===L?n.prop(a,b,c):(1===f&&n.isXMLDoc(a)||(b=b.toLowerCase(),d=n.attrHooks[b]||(n.expr.match.bool.test(b)?oc:nc)),void 0===c?d&&"get"in d&&null!==(e=d.get(a,b))?e:(e=n.find.attr(a,b),null==e?void 0:e):null!==c?d&&"set"in d&&void 0!==(e=d.set(a,c,b))?e:(a.setAttribute(b,c+""),c):void n.removeAttr(a,b))},removeAttr:function(a,b){var c,d,e=0,f=b&&b.match(F);if(f&&1===a.nodeType)while(c=f[e++])d=n.propFix[c]||c,n.expr.match.bool.test(c)?sc&&rc||!qc.test(c)?a[d]=!1:a[n.camelCase("default-"+c)]=a[d]=!1:n.attr(a,c,""),a.removeAttribute(rc?c:d)},attrHooks:{type:{set:function(a,b){if(!l.radioValue&&"radio"===b&&n.nodeName(a,"input")){var c=a.value;return a.setAttribute("type",b),c&&(a.value=c),b}}}}}),oc={set:function(a,b,c){return b===!1?n.removeAttr(a,c):sc&&rc||!qc.test(c)?a.setAttribute(!rc&&n.propFix[c]||c,c):a[n.camelCase("default-"+c)]=a[c]=!0,c}},n.each(n.expr.match.bool.source.match(/\w+/g),function(a,b){var c=pc[b]||n.find.attr;pc[b]=sc&&rc||!qc.test(b)?function(a,b,d){var e,f;return d||(f=pc[b],pc[b]=e,e=null!=c(a,b,d)?b.toLowerCase():null,pc[b]=f),e}:function(a,b,c){return c?void 0:a[n.camelCase("default-"+b)]?b.toLowerCase():null}}),sc&&rc||(n.attrHooks.value={set:function(a,b,c){return n.nodeName(a,"input")?void(a.defaultValue=b):nc&&nc.set(a,b,c)}}),rc||(nc={set:function(a,b,c){var d=a.getAttributeNode(c);return d||a.setAttributeNode(d=a.ownerDocument.createAttribute(c)),d.value=b+="","value"===c||b===a.getAttribute(c)?b:void 0}},pc.id=pc.name=pc.coords=function(a,b,c){var d;return c?void 0:(d=a.getAttributeNode(b))&&""!==d.value?d.value:null},n.valHooks.button={get:function(a,b){var c=a.getAttributeNode(b);return c&&c.specified?c.value:void 0},set:nc.set},n.attrHooks.contenteditable={set:function(a,b,c){nc.set(a,""===b?!1:b,c)}},n.each(["width","height"],function(a,b){n.attrHooks[b]={set:function(a,c){return""===c?(a.setAttribute(b,"auto"),c):void 0}}})),l.style||(n.attrHooks.style={get:function(a){return a.style.cssText||void 0},set:function(a,b){return a.style.cssText=b+""}});var tc=/^(?:input|select|textarea|button|object)$/i,uc=/^(?:a|area)$/i;n.fn.extend({prop:function(a,b){return W(this,n.prop,a,b,arguments.length>1)},removeProp:function(a){return a=n.propFix[a]||a,this.each(function(){try{this[a]=void 0,delete this[a]}catch(b){}})}}),n.extend({propFix:{"for":"htmlFor","class":"className"},prop:function(a,b,c){var d,e,f,g=a.nodeType;if(a&&3!==g&&8!==g&&2!==g)return f=1!==g||!n.isXMLDoc(a),f&&(b=n.propFix[b]||b,e=n.propHooks[b]),void 0!==c?e&&"set"in e&&void 0!==(d=e.set(a,c,b))?d:a[b]=c:e&&"get"in e&&null!==(d=e.get(a,b))?d:a[b]},propHooks:{tabIndex:{get:function(a){var b=n.find.attr(a,"tabindex");return b?parseInt(b,10):tc.test(a.nodeName)||uc.test(a.nodeName)&&a.href?0:-1}}}}),l.hrefNormalized||n.each(["href","src"],function(a,b){n.propHooks[b]={get:function(a){return a.getAttribute(b,4)}}}),l.optSelected||(n.propHooks.selected={get:function(a){var b=a.parentNode;return b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex),null}}),n.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){n.propFix[this.toLowerCase()]=this}),l.enctype||(n.propFix.enctype="encoding");var vc=/[\t\r\n\f]/g;n.fn.extend({addClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j="string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).addClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):" ")){f=0;while(e=b[f++])d.indexOf(" "+e+" ")<0&&(d+=e+" ");g=n.trim(d),c.className!==g&&(c.className=g)}return this},removeClass:function(a){var b,c,d,e,f,g,h=0,i=this.length,j=0===arguments.length||"string"==typeof a&&a;if(n.isFunction(a))return this.each(function(b){n(this).removeClass(a.call(this,b,this.className))});if(j)for(b=(a||"").match(F)||[];i>h;h++)if(c=this[h],d=1===c.nodeType&&(c.className?(" "+c.className+" ").replace(vc," "):"")){f=0;while(e=b[f++])while(d.indexOf(" "+e+" ")>=0)d=d.replace(" "+e+" "," ");g=a?n.trim(d):"",c.className!==g&&(c.className=g)}return this},toggleClass:function(a,b){var c=typeof a;return"boolean"==typeof b&&"string"===c?b?this.addClass(a):this.removeClass(a):this.each(n.isFunction(a)?function(c){n(this).toggleClass(a.call(this,c,this.className,b),b)}:function(){if("string"===c){var b,d=0,e=n(this),f=a.match(F)||[];while(b=f[d++])e.hasClass(b)?e.removeClass(b):e.addClass(b)}else(c===L||"boolean"===c)&&(this.className&&n._data(this,"__className__",this.className),this.className=this.className||a===!1?"":n._data(this,"__className__")||"")})},hasClass:function(a){for(var b=" "+a+" ",c=0,d=this.length;d>c;c++)if(1===this[c].nodeType&&(" "+this[c].className+" ").replace(vc," ").indexOf(b)>=0)return!0;return!1}}),n.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){n.fn[b]=function(a,c){return arguments.length>0?this.on(b,null,a,c):this.trigger(b)}}),n.fn.extend({hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return 1===arguments.length?this.off(a,"**"):this.off(b,a||"**",c)}});var wc=n.now(),xc=/\?/,yc=/(,)|(\[|{)|(}|])|"(?:[^"\\\r\n]|\\["\\\/bfnrt]|\\u[\da-fA-F]{4})*"\s*:?|true|false|null|-?(?!0\d)\d+(?:\.\d+|)(?:[eE][+-]?\d+|)/g;n.parseJSON=function(b){if(a.JSON&&a.JSON.parse)return a.JSON.parse(b+"");var c,d=null,e=n.trim(b+"");return e&&!n.trim(e.replace(yc,function(a,b,e,f){return c&&b&&(d=0),0===d?a:(c=e||b,d+=!f-!e,"")}))?Function("return "+e)():n.error("Invalid JSON: "+b)},n.parseXML=function(b){var c,d;if(!b||"string"!=typeof b)return null;try{a.DOMParser?(d=new DOMParser,c=d.parseFromString(b,"text/xml")):(c=new ActiveXObject("Microsoft.XMLDOM"),c.async="false",c.loadXML(b))}catch(e){c=void 0}return c&&c.documentElement&&!c.getElementsByTagName("parsererror").length||n.error("Invalid XML: "+b),c};var zc,Ac,Bc=/#.*$/,Cc=/([?&])_=[^&]*/,Dc=/^(.*?):[ \t]*([^\r\n]*)\r?$/gm,Ec=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Fc=/^(?:GET|HEAD)$/,Gc=/^\/\//,Hc=/^([\w.+-]+:)(?:\/\/(?:[^\/?#]*@|)([^\/?#:]*)(?::(\d+)|)|)/,Ic={},Jc={},Kc="*/".concat("*");try{Ac=location.href}catch(Lc){Ac=z.createElement("a"),Ac.href="",Ac=Ac.href}zc=Hc.exec(Ac.toLowerCase())||[];function Mc(a){return function(b,c){"string"!=typeof b&&(c=b,b="*");var d,e=0,f=b.toLowerCase().match(F)||[];if(n.isFunction(c))while(d=f[e++])"+"===d.charAt(0)?(d=d.slice(1)||"*",(a[d]=a[d]||[]).unshift(c)):(a[d]=a[d]||[]).push(c)}}function Nc(a,b,c,d){var e={},f=a===Jc;function g(h){var i;return e[h]=!0,n.each(a[h]||[],function(a,h){var j=h(b,c,d);return"string"!=typeof j||f||e[j]?f?!(i=j):void 0:(b.dataTypes.unshift(j),g(j),!1)}),i}return g(b.dataTypes[0])||!e["*"]&&g("*")}function Oc(a,b){var c,d,e=n.ajaxSettings.flatOptions||{};for(d in b)void 0!==b[d]&&((e[d]?a:c||(c={}))[d]=b[d]);return c&&n.extend(!0,a,c),a}function Pc(a,b,c){var d,e,f,g,h=a.contents,i=a.dataTypes;while("*"===i[0])i.shift(),void 0===e&&(e=a.mimeType||b.getResponseHeader("Content-Type"));if(e)for(g in h)if(h[g]&&h[g].test(e)){i.unshift(g);break}if(i[0]in c)f=i[0];else{for(g in c){if(!i[0]||a.converters[g+" "+i[0]]){f=g;break}d||(d=g)}f=f||d}return f?(f!==i[0]&&i.unshift(f),c[f]):void 0}function Qc(a,b,c,d){var e,f,g,h,i,j={},k=a.dataTypes.slice();if(k[1])for(g in a.converters)j[g.toLowerCase()]=a.converters[g];f=k.shift();while(f)if(a.responseFields[f]&&(c[a.responseFields[f]]=b),!i&&d&&a.dataFilter&&(b=a.dataFilter(b,a.dataType)),i=f,f=k.shift())if("*"===f)f=i;else if("*"!==i&&i!==f){if(g=j[i+" "+f]||j["* "+f],!g)for(e in j)if(h=e.split(" "),h[1]===f&&(g=j[i+" "+h[0]]||j["* "+h[0]])){g===!0?g=j[e]:j[e]!==!0&&(f=h[0],k.unshift(h[1]));break}if(g!==!0)if(g&&a["throws"])b=g(b);else try{b=g(b)}catch(l){return{state:"parsererror",error:g?l:"No conversion from "+i+" to "+f}}}return{state:"success",data:b}}n.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ac,type:"GET",isLocal:Ec.test(zc[1]),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":Kc,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":n.parseJSON,"text xml":n.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(a,b){return b?Oc(Oc(a,n.ajaxSettings),b):Oc(n.ajaxSettings,a)},ajaxPrefilter:Mc(Ic),ajaxTransport:Mc(Jc),ajax:function(a,b){"object"==typeof a&&(b=a,a=void 0),b=b||{};var c,d,e,f,g,h,i,j,k=n.ajaxSetup({},b),l=k.context||k,m=k.context&&(l.nodeType||l.jquery)?n(l):n.event,o=n.Deferred(),p=n.Callbacks("once memory"),q=k.statusCode||{},r={},s={},t=0,u="canceled",v={readyState:0,getResponseHeader:function(a){var b;if(2===t){if(!j){j={};while(b=Dc.exec(f))j[b[1].toLowerCase()]=b[2]}b=j[a.toLowerCase()]}return null==b?null:b},getAllResponseHeaders:function(){return 2===t?f:null},setRequestHeader:function(a,b){var c=a.toLowerCase();return t||(a=s[c]=s[c]||a,r[a]=b),this},overrideMimeType:function(a){return t||(k.mimeType=a),this},statusCode:function(a){var b;if(a)if(2>t)for(b in a)q[b]=[q[b],a[b]];else v.always(a[v.status]);return this},abort:function(a){var b=a||u;return i&&i.abort(b),x(0,b),this}};if(o.promise(v).complete=p.add,v.success=v.done,v.error=v.fail,k.url=((a||k.url||Ac)+"").replace(Bc,"").replace(Gc,zc[1]+"//"),k.type=b.method||b.type||k.method||k.type,k.dataTypes=n.trim(k.dataType||"*").toLowerCase().match(F)||[""],null==k.crossDomain&&(c=Hc.exec(k.url.toLowerCase()),k.crossDomain=!(!c||c[1]===zc[1]&&c[2]===zc[2]&&(c[3]||("http:"===c[1]?"80":"443"))===(zc[3]||("http:"===zc[1]?"80":"443")))),k.data&&k.processData&&"string"!=typeof k.data&&(k.data=n.param(k.data,k.traditional)),Nc(Ic,k,b,v),2===t)return v;h=k.global,h&&0===n.active++&&n.event.trigger("ajaxStart"),k.type=k.type.toUpperCase(),k.hasContent=!Fc.test(k.type),e=k.url,k.hasContent||(k.data&&(e=k.url+=(xc.test(e)?"&":"?")+k.data,delete k.data),k.cache===!1&&(k.url=Cc.test(e)?e.replace(Cc,"$1_="+wc++):e+(xc.test(e)?"&":"?")+"_="+wc++)),k.ifModified&&(n.lastModified[e]&&v.setRequestHeader("If-Modified-Since",n.lastModified[e]),n.etag[e]&&v.setRequestHeader("If-None-Match",n.etag[e])),(k.data&&k.hasContent&&k.contentType!==!1||b.contentType)&&v.setRequestHeader("Content-Type",k.contentType),v.setRequestHeader("Accept",k.dataTypes[0]&&k.accepts[k.dataTypes[0]]?k.accepts[k.dataTypes[0]]+("*"!==k.dataTypes[0]?", "+Kc+"; q=0.01":""):k.accepts["*"]);for(d in k.headers)v.setRequestHeader(d,k.headers[d]);if(k.beforeSend&&(k.beforeSend.call(l,v,k)===!1||2===t))return v.abort();u="abort";for(d in{success:1,error:1,complete:1})v[d](k[d]);if(i=Nc(Jc,k,b,v)){v.readyState=1,h&&m.trigger("ajaxSend",[v,k]),k.async&&k.timeout>0&&(g=setTimeout(function(){v.abort("timeout")},k.timeout));try{t=1,i.send(r,x)}catch(w){if(!(2>t))throw w;x(-1,w)}}else x(-1,"No Transport");function x(a,b,c,d){var j,r,s,u,w,x=b;2!==t&&(t=2,g&&clearTimeout(g),i=void 0,f=d||"",v.readyState=a>0?4:0,j=a>=200&&300>a||304===a,c&&(u=Pc(k,v,c)),u=Qc(k,u,v,j),j?(k.ifModified&&(w=v.getResponseHeader("Last-Modified"),w&&(n.lastModified[e]=w),w=v.getResponseHeader("etag"),w&&(n.etag[e]=w)),204===a||"HEAD"===k.type?x="nocontent":304===a?x="notmodified":(x=u.state,r=u.data,s=u.error,j=!s)):(s=x,(a||!x)&&(x="error",0>a&&(a=0))),v.status=a,v.statusText=(b||x)+"",j?o.resolveWith(l,[r,x,v]):o.rejectWith(l,[v,x,s]),v.statusCode(q),q=void 0,h&&m.trigger(j?"ajaxSuccess":"ajaxError",[v,k,j?r:s]),p.fireWith(l,[v,x]),h&&(m.trigger("ajaxComplete",[v,k]),--n.active||n.event.trigger("ajaxStop")))}return v},getJSON:function(a,b,c){return n.get(a,b,c,"json")},getScript:function(a,b){return n.get(a,void 0,b,"script")}}),n.each(["get","post"],function(a,b){n[b]=function(a,c,d,e){return n.isFunction(c)&&(e=e||d,d=c,c=void 0),n.ajax({url:a,type:b,dataType:e,data:c,success:d})}}),n.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(a,b){n.fn[b]=function(a){return this.on(b,a)}}),n._evalUrl=function(a){return n.ajax({url:a,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0})},n.fn.extend({wrapAll:function(a){if(n.isFunction(a))return this.each(function(b){n(this).wrapAll(a.call(this,b))});if(this[0]){var b=n(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&1===a.firstChild.nodeType)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){return this.each(n.isFunction(a)?function(b){n(this).wrapInner(a.call(this,b))}:function(){var b=n(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=n.isFunction(a);return this.each(function(c){n(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){n.nodeName(this,"body")||n(this).replaceWith(this.childNodes)}).end()}}),n.expr.filters.hidden=function(a){return a.offsetWidth<=0&&a.offsetHeight<=0||!l.reliableHiddenOffsets()&&"none"===(a.style&&a.style.display||n.css(a,"display"))},n.expr.filters.visible=function(a){return!n.expr.filters.hidden(a)};var Rc=/%20/g,Sc=/\[\]$/,Tc=/\r?\n/g,Uc=/^(?:submit|button|image|reset|file)$/i,Vc=/^(?:input|select|textarea|keygen)/i;function Wc(a,b,c,d){var e;if(n.isArray(b))n.each(b,function(b,e){c||Sc.test(a)?d(a,e):Wc(a+"["+("object"==typeof e?b:"")+"]",e,c,d)});else if(c||"object"!==n.type(b))d(a,b);else for(e in b)Wc(a+"["+e+"]",b[e],c,d)}n.param=function(a,b){var c,d=[],e=function(a,b){b=n.isFunction(b)?b():null==b?"":b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};if(void 0===b&&(b=n.ajaxSettings&&n.ajaxSettings.traditional),n.isArray(a)||a.jquery&&!n.isPlainObject(a))n.each(a,function(){e(this.name,this.value)});else for(c in a)Wc(c,a[c],b,e);return d.join("&").replace(Rc,"+")},n.fn.extend({serialize:function(){return n.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var a=n.prop(this,"elements");return a?n.makeArray(a):this}).filter(function(){var a=this.type;return this.name&&!n(this).is(":disabled")&&Vc.test(this.nodeName)&&!Uc.test(a)&&(this.checked||!X.test(a))}).map(function(a,b){var c=n(this).val();return null==c?null:n.isArray(c)?n.map(c,function(a){return{name:b.name,value:a.replace(Tc,"\r\n")}}):{name:b.name,value:c.replace(Tc,"\r\n")}}).get()}}),n.ajaxSettings.xhr=void 0!==a.ActiveXObject?function(){return!this.isLocal&&/^(get|post|head|put|delete|options)$/i.test(this.type)&&$c()||_c()}:$c;var Xc=0,Yc={},Zc=n.ajaxSettings.xhr();a.ActiveXObject&&n(a).on("unload",function(){for(var a in Yc)Yc[a](void 0,!0)}),l.cors=!!Zc&&"withCredentials"in Zc,Zc=l.ajax=!!Zc,Zc&&n.ajaxTransport(function(a){if(!a.crossDomain||l.cors){var b;return{send:function(c,d){var e,f=a.xhr(),g=++Xc;if(f.open(a.type,a.url,a.async,a.username,a.password),a.xhrFields)for(e in a.xhrFields)f[e]=a.xhrFields[e];a.mimeType&&f.overrideMimeType&&f.overrideMimeType(a.mimeType),a.crossDomain||c["X-Requested-With"]||(c["X-Requested-With"]="XMLHttpRequest");for(e in c)void 0!==c[e]&&f.setRequestHeader(e,c[e]+"");f.send(a.hasContent&&a.data||null),b=function(c,e){var h,i,j;if(b&&(e||4===f.readyState))if(delete Yc[g],b=void 0,f.onreadystatechange=n.noop,e)4!==f.readyState&&f.abort();else{j={},h=f.status,"string"==typeof f.responseText&&(j.text=f.responseText);try{i=f.statusText}catch(k){i=""}h||!a.isLocal||a.crossDomain?1223===h&&(h=204):h=j.text?200:404}j&&d(h,i,j,f.getAllResponseHeaders())},a.async?4===f.readyState?setTimeout(b):f.onreadystatechange=Yc[g]=b:b()},abort:function(){b&&b(void 0,!0)}}}});function $c(){try{return new a.XMLHttpRequest}catch(b){}}function _c(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}n.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/(?:java|ecma)script/},converters:{"text script":function(a){return n.globalEval(a),a}}}),n.ajaxPrefilter("script",function(a){void 0===a.cache&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),n.ajaxTransport("script",function(a){if(a.crossDomain){var b,c=z.head||n("head")[0]||z.documentElement;return{send:function(d,e){b=z.createElement("script"),b.async=!0,a.scriptCharset&&(b.charset=a.scriptCharset),b.src=a.url,b.onload=b.onreadystatechange=function(a,c){(c||!b.readyState||/loaded|complete/.test(b.readyState))&&(b.onload=b.onreadystatechange=null,b.parentNode&&b.parentNode.removeChild(b),b=null,c||e(200,"success"))},c.insertBefore(b,c.firstChild)},abort:function(){b&&b.onload(void 0,!0)}}}});var ad=[],bd=/(=)\?(?=&|$)|\?\?/;n.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var a=ad.pop()||n.expando+"_"+wc++;return this[a]=!0,a}}),n.ajaxPrefilter("json jsonp",function(b,c,d){var e,f,g,h=b.jsonp!==!1&&(bd.test(b.url)?"url":"string"==typeof b.data&&!(b.contentType||"").indexOf("application/x-www-form-urlencoded")&&bd.test(b.data)&&"data");return h||"jsonp"===b.dataTypes[0]?(e=b.jsonpCallback=n.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,h?b[h]=b[h].replace(bd,"$1"+e):b.jsonp!==!1&&(b.url+=(xc.test(b.url)?"&":"?")+b.jsonp+"="+e),b.converters["script json"]=function(){return g||n.error(e+" was not called"),g[0]},b.dataTypes[0]="json",f=a[e],a[e]=function(){g=arguments},d.always(function(){a[e]=f,b[e]&&(b.jsonpCallback=c.jsonpCallback,ad.push(e)),g&&n.isFunction(f)&&f(g[0]),g=f=void 0}),"script"):void 0}),n.parseHTML=function(a,b,c){if(!a||"string"!=typeof a)return null;"boolean"==typeof b&&(c=b,b=!1),b=b||z;var d=v.exec(a),e=!c&&[];return d?[b.createElement(d[1])]:(d=n.buildFragment([a],b,e),e&&e.length&&n(e).remove(),n.merge([],d.childNodes))};var cd=n.fn.load;n.fn.load=function(a,b,c){if("string"!=typeof a&&cd)return cd.apply(this,arguments);var d,e,f,g=this,h=a.indexOf(" ");return h>=0&&(d=a.slice(h,a.length),a=a.slice(0,h)),n.isFunction(b)?(c=b,b=void 0):b&&"object"==typeof b&&(f="POST"),g.length>0&&n.ajax({url:a,type:f,dataType:"html",data:b}).done(function(a){e=arguments,g.html(d?n("<div>").append(n.parseHTML(a)).find(d):a)}).complete(c&&function(a,b){g.each(c,e||[a.responseText,b,a])}),this},n.expr.filters.animated=function(a){return n.grep(n.timers,function(b){return a===b.elem}).length};var dd=a.document.documentElement;function ed(a){return n.isWindow(a)?a:9===a.nodeType?a.defaultView||a.parentWindow:!1}n.offset={setOffset:function(a,b,c){var d,e,f,g,h,i,j,k=n.css(a,"position"),l=n(a),m={};"static"===k&&(a.style.position="relative"),h=l.offset(),f=n.css(a,"top"),i=n.css(a,"left"),j=("absolute"===k||"fixed"===k)&&n.inArray("auto",[f,i])>-1,j?(d=l.position(),g=d.top,e=d.left):(g=parseFloat(f)||0,e=parseFloat(i)||0),n.isFunction(b)&&(b=b.call(a,c,h)),null!=b.top&&(m.top=b.top-h.top+g),null!=b.left&&(m.left=b.left-h.left+e),"using"in b?b.using.call(a,m):l.css(m)}},n.fn.extend({offset:function(a){if(arguments.length)return void 0===a?this:this.each(function(b){n.offset.setOffset(this,a,b)});var b,c,d={top:0,left:0},e=this[0],f=e&&e.ownerDocument;if(f)return b=f.documentElement,n.contains(b,e)?(typeof e.getBoundingClientRect!==L&&(d=e.getBoundingClientRect()),c=ed(f),{top:d.top+(c.pageYOffset||b.scrollTop)-(b.clientTop||0),left:d.left+(c.pageXOffset||b.scrollLeft)-(b.clientLeft||0)}):d},position:function(){if(this[0]){var a,b,c={top:0,left:0},d=this[0];return"fixed"===n.css(d,"position")?b=d.getBoundingClientRect():(a=this.offsetParent(),b=this.offset(),n.nodeName(a[0],"html")||(c=a.offset()),c.top+=n.css(a[0],"borderTopWidth",!0),c.left+=n.css(a[0],"borderLeftWidth",!0)),{top:b.top-c.top-n.css(d,"marginTop",!0),left:b.left-c.left-n.css(d,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||dd;while(a&&!n.nodeName(a,"html")&&"static"===n.css(a,"position"))a=a.offsetParent;return a||dd})}}),n.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,b){var c=/Y/.test(b);n.fn[a]=function(d){return W(this,function(a,d,e){var f=ed(a);return void 0===e?f?b in f?f[b]:f.document.documentElement[d]:a[d]:void(f?f.scrollTo(c?n(f).scrollLeft():e,c?e:n(f).scrollTop()):a[d]=e)},a,d,arguments.length,null)}}),n.each(["top","left"],function(a,b){n.cssHooks[b]=Mb(l.pixelPosition,function(a,c){return c?(c=Kb(a,b),Ib.test(c)?n(a).position()[b]+"px":c):void 0})}),n.each({Height:"height",Width:"width"},function(a,b){n.each({padding:"inner"+a,content:b,"":"outer"+a},function(c,d){n.fn[d]=function(d,e){var f=arguments.length&&(c||"boolean"!=typeof d),g=c||(d===!0||e===!0?"margin":"border");return W(this,function(b,c,d){var e;return n.isWindow(b)?b.document.documentElement["client"+a]:9===b.nodeType?(e=b.documentElement,Math.max(b.body["scroll"+a],e["scroll"+a],b.body["offset"+a],e["offset"+a],e["client"+a])):void 0===d?n.css(b,c,g):n.style(b,c,d,g)},b,f?d:void 0,f,null)}})}),n.fn.size=function(){return this.length},n.fn.andSelf=n.fn.addBack,"function"==typeof define&&define.amd&&define("jquery",[],function(){return n});var fd=a.jQuery,gd=a.$;return n.noConflict=function(b){return a.$===n&&(a.$=gd),b&&a.jQuery===n&&(a.jQuery=fd),n},typeof b===L&&(a.jQuery=a.$=n),n});
diff --git a/doc/ref/csharp/html/search.html b/doc/ref/csharp/html/search.html
new file mode 100644
index 0000000000000000000000000000000000000000..296a4d29da499affa9b97e7c9f68871eb256f31c
--- /dev/null
+++ b/doc/ref/csharp/html/search.html
@@ -0,0 +1,35 @@
+<!DOCTYPE html>
+<html>
+<head>
+	<title>gRPC C# - Search</title>
+	<link rel="stylesheet" type="text/css" href="styles/branding.css" />
+	<link rel="stylesheet" type="text/css" href="styles/branding-Website.css" />
+	<script type="text/javascript" src="scripts/jquery-1.11.0.min.js"></script>
+	<script type="text/javascript" src="scripts/branding.js"></script>
+	<script type="text/javascript" src="scripts/branding-Website.js"></script>
+</head>
+<body onload="OnSearchPageLoad();">
+	<div class="pageHeader" id="PageHeader">
+		gRPC C# - Search
+	</div>
+	<div class="pageBody">
+		<div class="searchContainer">
+			<div style="float: left;">
+				<form id="SearchForm" method="get" action="#" onsubmit="javascript:PerformSearch(); return false;">
+				<input id="txtSearchText" type="text" maxlength="200" />
+				<button id="HeaderSearchButton" type="submit" class="header-search-button">
+				</button>
+				</form>
+			</div>
+			&nbsp;&nbsp;<input type="checkbox" id="chkSortByTitle" onclick="javascript:PerformSearch();" />
+			Sort by title
+			<br />
+			<br />
+			<div id="searchResults">
+			</div>
+			<p>
+				<a href="html/R_Project_Documentation.htm">Back</a></p>
+		</div>
+	</div>
+</body>
+</html>
diff --git a/doc/ref/csharp/html/styles/branding-Help1.css b/doc/ref/csharp/html/styles/branding-Help1.css
new file mode 100644
index 0000000000000000000000000000000000000000..8f7ba25a3bacfad80244466163e88896d84963fa
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-Help1.css
@@ -0,0 +1,40 @@
+/* Define the userData cache persistence mechanism for Help 1 files */
+.userDataStyle {
+	behavior: url(#default#userdata);
+}
+
+/* Style adjustments for Help 1 */
+.pageBody {
+	padding-top: 0px 20px 0px 0px;
+}
+
+table {
+	width: 95%;
+	padding-right: 20px;
+}
+
+table.members {
+	width: 95%;
+	padding-right: 20px;
+}
+
+th p {
+	padding-bottom: 0px;
+}
+
+td p {
+	padding-bottom: 5px;
+}
+
+.codeSnippetContainerTabs {
+	top: 1px;
+}
+
+.codeSnippetToolBarText {
+	top: -13px;
+}
+
+.codeSnippetContainerTabSingle {
+	padding: 2px 15px 0px 15px;
+	height: 22px;
+}
diff --git a/doc/ref/csharp/html/styles/branding-HelpViewer.css b/doc/ref/csharp/html/styles/branding-HelpViewer.css
new file mode 100644
index 0000000000000000000000000000000000000000..951621be660e3700985576c983dc2701aaf31056
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-HelpViewer.css
@@ -0,0 +1,48 @@
+/* Style adjustments for Help Viewer */
+.pageBody {
+	padding-top: 0px 20px 0px 0px;
+}
+
+table {
+	width: 95%;
+	padding-right: 20px;
+}
+
+table.members {
+	width: 95%;
+	padding-right: 20px;
+}
+
+th p {
+	padding-bottom: 0px;
+}
+
+td p {
+	padding-bottom: 5px;
+}
+
+.codeSnippetContainerTabs {
+	top: 1px;
+}
+
+.codeSnippetToolBarText {
+	top: -13px;
+}
+
+.codeSnippetContainerTabSingle {
+	padding: 2px 15px 0px 15px;
+	height: 22px;
+}
+
+.codeSnippetContainerTab a:visited {
+	color: #000000;
+}
+
+.codeSnippetContainerTabActive a:visited {
+	color: #000000;
+}
+
+span.keyword {
+	color: #0000ff;
+	font-weight: normal;
+}
diff --git a/doc/ref/csharp/html/styles/branding-Website.css b/doc/ref/csharp/html/styles/branding-Website.css
new file mode 100644
index 0000000000000000000000000000000000000000..d39e08c771d08d7f28030a0e6ac621dc8d3df479
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-Website.css
@@ -0,0 +1,156 @@
+/* Style adjustments for websites */
+.pageBody {
+	padding: 0px 20px 0px 0px;
+}
+.topicContent {
+	margin-left: 280px;
+}
+
+/* Lightweight TOC */
+.tocCollapsed {
+	background: url('../icons/TocCollapsed.gif') no-repeat scroll center;
+	width: 17px;
+	height: 20px;
+	overflow: hidden;
+}
+.tocExpanded {
+	background: url('../icons/TocExpanded.gif') no-repeat scroll center;
+	width: 17px;
+	height: 20px;
+	overflow: hidden;
+}
+.tocResize {
+	position: absolute;
+	top: 90px;
+	left: 300px;
+	width: 5px;
+	height: 20px;
+	padding-right: 5px;
+}
+.tocResize img {
+	border: none;
+	cursor: pointer;
+}
+div#leftNav {
+	float: left;
+	margin: 0px -1px 0 0;
+	width: 280px;
+	min-height: 10px;
+	position: relative;
+	border-right: 1px solid #b6b6b6;
+	padding-left: 10px;
+	padding-top: 15px;
+}
+div#tocNav {
+	font-family: 'Segoe UI' ,Verdana,Arial;
+	overflow-x: hidden;
+	line-height: normal;
+	margin: -20px 0 0 -4px;
+}
+div#tocNav > div {
+	overflow-x: hidden;
+	white-space: normal;
+	width: auto;
+	margin-bottom: 5px;
+}
+div#leftNav a, div#leftNav a:link, div#leftNav a:visited {
+	color: #1364c4;
+	text-decoration: none;
+}
+div#leftNav a:hover {
+	color: #3390b1;
+}
+div#tocNav > div > a, div#tocNav > div > a:link, div#tocNav > div > a:visited {
+	display: block;
+	margin-left: 18px;
+	overflow: hidden;
+}
+div#tocNav > div.current > a, div#tocNav > div.current > a:link, div#tocNav > div.current > a:visited {
+	color: #000;
+	font-weight: bold;
+	text-decoration: none;
+}
+div#tocNav > div > a.tocExpanded, div#tocNav > div > a.tocCollapsed {
+	float: left;
+	display: inline-block;
+	margin-left: 0;
+	vertical-align: top;
+}
+div#tocResizableEW {
+	cursor: e-resize;
+	width: 15px;
+	top: 0;
+	height: 100%;
+	position: absolute;
+	display: block;
+	font-size: 0.5px;
+	right: -7px;
+}
+.toclevel0:first-child {
+	margin-top: 16px;
+}
+div#tocNav > div.toclevel1 {
+	padding-left: 17px;
+}
+div#tocNav > div.toclevel2 {
+	padding-left: 34px;
+}
+div#tocNav > div.toclevel3 {
+	padding-left: 51px;
+}
+div#tocNav > div.toclevel4 {
+	padding-left: 68px;
+}
+div#tocNav > div.toclevel5 {
+	padding-left: 85px;
+}
+div#tocNav > div.toclevel6 {
+	padding-left: 102px;
+}
+div#tocNav > div.toclevel7 {
+	padding-left: 119px;
+}
+div#tocNav > div.toclevel8 {
+	padding-left: 136px;
+}
+div#tocNav > div.toclevel9 {
+	padding-left: 153px;
+}
+div#tocNav > div.toclevel10 {
+	padding-left: 170px;
+}
+
+/* Search form */
+form#SearchForm {
+	float: right;
+	background-color: #eee;
+	width: 280px;
+}
+form#SearchForm input {
+	background-color: #eee;
+	border: 0;
+	height: 22px;
+	width: 230px;
+	color: #3b3b3b;
+	display: inline-block;
+	margin: 1px 0 0 0;
+	padding: 1px 4px 1px 10px;
+}
+form#SearchForm button {
+	background: url('../icons/Search.png') no-repeat scroll center;
+	background-color: #eee;
+	float: right;
+	border: 0;
+	margin: 3px 2px 0 0;
+	cursor: pointer;
+	color: #3b3b3b;
+	width: 19px;
+	height: 18px;
+	overflow: hidden;
+}
+.searchContainer {
+	width: 700px;
+	margin-top: 50px;
+	margin-left: auto;
+	margin-right: auto;
+}
diff --git a/doc/ref/csharp/html/styles/branding-cs-CZ.css b/doc/ref/csharp/html/styles/branding-cs-CZ.css
new file mode 100644
index 0000000000000000000000000000000000000000..f38de74970c9a4e61c8f4c5c480e35e88a1ae741
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-cs-CZ.css
@@ -0,0 +1,3 @@
+/* Start CS-CZ locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-de-DE.css b/doc/ref/csharp/html/styles/branding-de-DE.css
new file mode 100644
index 0000000000000000000000000000000000000000..4cf80baddae913d710761bf77e8743d87bbb10e7
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-de-DE.css
@@ -0,0 +1,3 @@
+/* Start DE-DE locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-en-US.css b/doc/ref/csharp/html/styles/branding-en-US.css
new file mode 100644
index 0000000000000000000000000000000000000000..248cbe5a2a4e42b5ab17c8ef49204fa1132d0594
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-en-US.css
@@ -0,0 +1,3 @@
+/* Start EN-US locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-es-ES.css b/doc/ref/csharp/html/styles/branding-es-ES.css
new file mode 100644
index 0000000000000000000000000000000000000000..4a7ebbd68dcae7ca7830e16334218ffbe5bcf106
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-es-ES.css
@@ -0,0 +1,3 @@
+/* Start ES-ES locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-fr-FR.css b/doc/ref/csharp/html/styles/branding-fr-FR.css
new file mode 100644
index 0000000000000000000000000000000000000000..d924dec965412caef7d0c45410bb6321f42194dc
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-fr-FR.css
@@ -0,0 +1,3 @@
+/* Start FR-FR locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-it-IT.css b/doc/ref/csharp/html/styles/branding-it-IT.css
new file mode 100644
index 0000000000000000000000000000000000000000..36c6b224fb17dec7ad1b98fcb066de07e03c9617
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-it-IT.css
@@ -0,0 +1,3 @@
+/* Start IT-IT locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-ja-JP.css b/doc/ref/csharp/html/styles/branding-ja-JP.css
new file mode 100644
index 0000000000000000000000000000000000000000..403aa6ddf8fe18796a08a666298a062f1d8fe494
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-ja-JP.css
@@ -0,0 +1,18 @@
+/* Start JA-JP locale-specific CSS */
+body
+{
+	font-family: Segoe UI, Verdana, Arial, MS Pゴシック;
+}
+pre
+{
+  font-family: Consolas, Courier, monospace, MS ゴシック;
+}
+span.tt
+{
+  font-family: Consolas, Courier, monospace, MS ゴシック;
+}
+span.code
+{
+	font-family: Consolas, Courier, monospace, MS ゴシック;
+}
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-ko-KR.css b/doc/ref/csharp/html/styles/branding-ko-KR.css
new file mode 100644
index 0000000000000000000000000000000000000000..2b46e923efb5e004cbfc739dd45045ed826fa516
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-ko-KR.css
@@ -0,0 +1,19 @@
+/* Start KO-KR locale-specific CSS */
+body
+{
+	font-family: Malgun Gothic, Segoe UI, Verdana, Arial;
+	font-size: 0.75em; /*9pt*/
+}
+pre
+{
+  font-family: Consolas, Courier, monospace, 돋움체;
+}
+span.tt
+{
+  font-family: Consolas, Courier, monospace, 돋움체;
+}
+span.code
+{
+	font-family: Consolas, Courier, monospace, 돋움체;
+}
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-pl-PL.css b/doc/ref/csharp/html/styles/branding-pl-PL.css
new file mode 100644
index 0000000000000000000000000000000000000000..19e981032d452885746a8da942fbe19f4a5273fe
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-pl-PL.css
@@ -0,0 +1,3 @@
+/* Start PL-PL locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-pt-BR.css b/doc/ref/csharp/html/styles/branding-pt-BR.css
new file mode 100644
index 0000000000000000000000000000000000000000..a0683b0ef20d622972c7ffd74d3c623eb1f7a738
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-pt-BR.css
@@ -0,0 +1,3 @@
+/* Start PT-BR locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-ru-RU.css b/doc/ref/csharp/html/styles/branding-ru-RU.css
new file mode 100644
index 0000000000000000000000000000000000000000..c31f83a44bcb22fae293bad0c7ddd4ef2c5d2324
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-ru-RU.css
@@ -0,0 +1,3 @@
+/* Start RU-RU locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-tr-TR.css b/doc/ref/csharp/html/styles/branding-tr-TR.css
new file mode 100644
index 0000000000000000000000000000000000000000..81ca462ef7ce46e6980a65547b9c24ffeafccd3a
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-tr-TR.css
@@ -0,0 +1,3 @@
+/* Start TR-TR locale-specific CSS */
+
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-zh-CN.css b/doc/ref/csharp/html/styles/branding-zh-CN.css
new file mode 100644
index 0000000000000000000000000000000000000000..cf79e7cd00083ce48437161d297dcf0af28a13a2
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-zh-CN.css
@@ -0,0 +1,18 @@
+/* Start ZH-CN locale-specific CSS */
+body
+{
+	font-family: MS YaHei, Simsun, Segoe UI, Verdana, Arial;
+}
+pre
+{
+  font-family: Consolas, Courier, monospace, 新宋体;
+}
+span.tt
+{
+  font-family: Consolas, Courier, monospace, 新宋体;
+}
+span.code
+{
+	font-family: Consolas, Courier, monospace, 新宋体;
+}
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding-zh-TW.css b/doc/ref/csharp/html/styles/branding-zh-TW.css
new file mode 100644
index 0000000000000000000000000000000000000000..eab654f8c5ef820463c73b934929ecec221ac2a2
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding-zh-TW.css
@@ -0,0 +1,18 @@
+/* Start ZH-TW locale-specific CSS */
+body
+{
+	font-family: MS JhengHei, MingLiU, Segoe UI, Verdana, Arial;
+}
+pre
+{
+  font-family: Consolas, Courier, monospace, 細明體;
+}
+span.tt
+{
+  font-family: Consolas, Courier, monospace, 細明體;
+}
+span.code
+{
+	font-family: Consolas, Courier, monospace, 細明體;
+}
+/* End locale-specific CSS */
diff --git a/doc/ref/csharp/html/styles/branding.css b/doc/ref/csharp/html/styles/branding.css
new file mode 100644
index 0000000000000000000000000000000000000000..7afa70b3150a520d45152dbd12ef0594ad5170b2
--- /dev/null
+++ b/doc/ref/csharp/html/styles/branding.css
@@ -0,0 +1,561 @@
+/* General styles */
+body {
+	font-family: 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
+	font-size: 15px;
+	padding: 0;
+	margin: 0;
+	margin-left: auto;
+	margin-right: auto;
+	color: #000;
+}
+h1 {
+	font-family: 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
+	font-size: 2.5em;
+	font-weight: normal;
+	margin-top: 0;
+	color: #000;
+}
+h2, h3 {
+	font-family: 'Segoe UI Semibold' , 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
+	font-weight: normal;
+	margin: 0;
+	padding-bottom: 5px;
+	padding-top: 5px;
+	color: #000;
+}
+h2 {
+	font-size: 1.769em;
+}
+h3 {
+	font-size: 1.231em;
+}
+h4, .subHeading {
+	font-family: 'Segoe UI Semibold' , 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
+	font-size: 1.077em;
+	font-weight: normal;
+	margin: 0;
+	color: #000;
+}
+.subHeading {
+	margin-top: 5px;
+}
+h5, h6 {
+	font-family: 'Segoe UI Semibold' , 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
+	font-size: 1em;
+	font-weight: normal;
+	line-height: 130%;
+	margin: 0;
+	color: #000;
+}
+a, a:link {
+	text-decoration: none;
+	color: #1364c4;
+}
+a:visited, a:active {
+	text-decoration: none;
+	color: #03697a;
+}
+a:hover {
+	text-decoration: none;
+	color: #3390b1;
+}
+img {
+	border: 0;
+}
+p {
+	margin-top: 0;
+	margin-bottom: 0;
+	padding-bottom: 15px;
+	line-height: 18px;
+}
+q {
+	font-style: italic;
+}
+blockquote {
+	margin-top: 0px;
+}
+table {
+	border-collapse: collapse;
+	padding: 0;
+	margin-bottom: 15px;
+	font-size: 15px;
+	width: 100%;
+}
+td, th {
+	border-bottom: 1px solid #dbdbdb;
+	margin: 10px;
+	padding-top: 10px;
+	padding-bottom: 10px;
+	padding-right: 8px;
+	padding-left: 8px;
+}
+th {
+	background-color: #ededed;
+	color: #636363;
+	text-align: left;
+	padding-top: 5px;
+	padding-bottom: 5px;
+}
+td {
+	color: #2a2a2a;
+	vertical-align: top;
+}
+table p:last-child {
+	padding-bottom: 0;
+}
+table.members {
+	width: 100%;
+}
+table.members td {
+	min-width: 72px;
+}
+table.members img {
+	padding-right: 5px;
+}
+div.alert img {
+	padding-right: 5px;
+}
+ol {
+	margin-top: 0px;
+	margin-bottom: 10px;
+}
+ol ol {
+	list-style-type: lower-alpha;
+}
+ol ol ol {
+	list-style-type: lower-roman;
+}
+ul {
+	margin-top: 0px;
+	margin-bottom: 10px;
+}
+.noBullet {
+	list-style-type: none;
+	padding-left: 20px;
+}
+ul ul {
+	list-style-type: circle;
+}
+ul ul ul {
+	list-style-type: square;
+}
+dt {
+	font-weight: 600;
+}
+pre {
+	font-family: Consolas, Courier, monospace;
+	overflow: hidden;
+}
+.pageHeader {
+	font-family: 'Segoe UI' , Tahoma, Helvetica, Sans-Serif;
+	background-color: #333333;
+	color: #d0d0d0;
+	padding: 5px 10px;
+	vertical-align: middle;
+	height: 25px;
+}
+.pageBody {
+	padding: 0px;
+}
+.topicContent {
+	padding: 10px 10px 15px 10px;
+	overflow: visible;
+	border-left: 1px solid #bbb;
+}
+.pageFooter {
+	clear: both;
+	border-top: solid 1px #bbb;
+	padding: 10px;
+}
+.feedbackLink {
+}
+.iconColumn {
+	width: 100px;
+}
+.seeAlsoStyle {
+}
+table.titleTable td {
+	padding-top: 0px;
+	border-width: 0px;
+}
+td.titleColumn {
+	font-family: 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif;
+	font-size: 2.5em;
+	font-weight: normal;
+	margin-top: 0px;
+	padding-left: 0px;
+	color: #000;
+	vertical-align: middle;
+}
+td.logoColumn {
+	padding-left: 0px;
+	padding-right: 10px;
+	vertical-align: middle;
+	width: 1px;
+}
+td.logoColumnAbove {
+	padding: 0px 10px 0px 0px;
+	vertical-align: middle;
+}
+span.selflink {
+	color: #000066;
+}
+div.preliminary {
+	margin-top: 1em;
+	margin-bottom: 1em;
+	font-weight: bold;
+	color: #333333;
+}
+div.caption {
+	font-weight: bold;
+	font-size: 1em; /*12pt*/
+	color: #003399;
+	padding-top: 5px;
+	padding-bottom: 5px;
+}
+.procedureSubHeading {
+	font-size: 1.1em; /*13.5pt*/
+	font-weight: bold;
+}
+.summary {
+}
+
+/* Collapsible region styles */
+.collapsibleAreaRegion {
+	margin-top: 15px;
+	margin-bottom: 15px;
+}
+.collapseToggle {
+	padding-right: 5px;
+}
+.collapsibleRegionTitle {
+	font-family: 'Segoe UI Semibold' , 'Segoe UI' , 'Lucida Grande' , Verdana, Arial, Helvetica, sans-serif !important;
+	font-style: normal !important;
+	font-size: 1.769em;
+	margin-top: 9px;
+	margin-bottom: 19px;
+	padding-top: 20px;
+	padding-bottom: 5px;
+	cursor: pointer;
+}
+.collapsibleSection {
+	padding: 0 0 0 20px;
+}
+
+/* Syntax and code snippet styles */
+.codeSnippetContainer {
+	min-width: 260px;
+	margin-top: 10px;
+}
+.codeSnippetContainerTabs {
+	height: 23px;
+	vertical-align: middle;
+	position: relative;
+	z-index: 1;
+}
+.codeSnippetContainerTab {
+	padding: 0px 15px;
+	width: auto;
+	height: 22px;
+	color: #2a2a2a;
+	font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
+	font-size: 12px;
+	font-style: normal !important;
+	vertical-align: baseline;
+	float: left;
+}
+.codeSnippetContainerTabActive {
+	background: #f8f8f8;
+	padding: 0px 15px;
+	width: auto;
+	height: 22px;
+	color: #000000;
+	font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
+	font-size: 12px;
+	font-style: normal !important;
+	vertical-align: baseline;
+	border-top-color: #939393;
+	border-right-color: #939393;
+	border-left-color: #939393;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-left-width: 1px;
+	border-top-style: solid;
+	border-right-style: solid;
+	border-left-style: solid;
+	float: left;
+}
+.codeSnippetContainerTabPhantom {
+	background: #f8f8f8;
+	padding: 0px 15px;
+	width: auto;
+	height: 22px;
+	color: #000000;
+	font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
+	font-size: 12px;
+	font-style: normal !important;
+	vertical-align: baseline;
+	border-top-color: #939393;
+	border-right-color: #939393;
+	border-left-color: #939393;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-left-width: 1px;
+	border-top-style: solid;
+	border-right-style: solid;
+	border-left-style: solid;
+	float: left;
+	display: none;
+}
+.codeSnippetContainerTabSingle {
+	background: #f8f8f8;
+	padding: 2px 15px 0px 15px;
+	width: auto;
+	height: 20px;
+	color: #000000;
+	font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
+	font-size: 12px;
+	font-weight: bold;
+	font-style: normal !important;
+	vertical-align: baseline;
+	border-top-color: #939393;
+	border-right-color: #939393;
+	border-left-color: #939393;
+	border-top-width: 1px;
+	border-right-width: 1px;
+	border-left-width: 1px;
+	border-top-style: solid;
+	border-right-style: solid;
+	border-left-style: solid;
+	float: left;
+}
+.codeSnippetContainerTab a {
+	top: 2px;
+	color: #000000;
+	font-weight: bold;
+	text-decoration: none;
+	position: relative;
+}
+.codeSnippetContainerTab a:link {
+	color: #000000;
+}
+.codeSnippetContainerTab a:hover {
+	color: #136460;
+}
+.codeSnippetContainerTabActive a {
+	top: 2px;
+	color: #000000;
+	font-weight: bold;
+	text-decoration: none;
+	position: relative;
+	cursor: default;
+}
+.codeSnippetContainerTabActive a:link {
+	color: #000000;
+}
+.codeSnippetContainerTabActive a:hover {
+	color: #000000;
+}
+.codeSnippetContainerTabPhantom a {
+	top: 2px;
+	color: #000000;
+	font-weight: bold;
+	text-decoration: none;
+	position: relative;
+	cursor: default;
+}
+.codeSnippetContainerTabPhantom a:link {
+	color: #000000;
+}
+.codeSnippetContainerCodeContainer {
+	border: 1px solid #939393;
+	top: -1px;
+	margin-bottom: 12px;
+	position: relative;
+}
+.codeSnippetToolBar {
+	width: auto;
+	height: auto;
+}
+.codeSnippetToolBarText {
+	top: -8px;
+	width: auto;
+	height: 0px;
+	padding-right: 0px;
+	padding-left: 0px;
+	vertical-align: top;
+	float: right;
+	position: relative;
+}
+.codeSnippetToolBarText a {
+	color: #1364c4;
+	text-decoration: none;
+	padding-left: 8px;
+	padding-right: 8px;
+	font-family: "Segoe UI" , "Lucida Grande" , Verdana, Arial, Helvetica, sans-serif !important;
+	font-size: 10px;
+	font-style: normal !important;
+	text-decoration: none;
+	margin-right: 10px;
+	margin-left: 0px;
+	background-color: #ffffff;
+}
+.codeSnippetToolBarText a:link {
+	color: #1364c4;
+}
+.codeSnippetContainerCode {
+	margin: 0px;
+	padding: 10px;
+	width: auto;
+}
+.codeSnippetContainerCode div {
+	margin: 0px;
+	padding: 0px;
+}
+.codeSnippetContainerCode pre {
+	margin: 0px;
+	padding: 5px;
+	overflow: auto;
+	font-family: Consolas, Courier, monospace !important;
+	font-style: normal;
+	font-weight: normal;
+	-ms-word-wrap: normal;
+}
+.codeSnippetContainerCode .keyword {
+	color: #0000ff;
+	font-weight: normal;
+}
+
+/* Keyword and phrase styles */
+span.code, span.command {
+	font-family: Consolas, Courier, monospace;
+	color: #000066;
+}
+span.ui {
+	font-weight: bold;
+}
+span.math {
+	font-style: italic;
+}
+span.input {
+	font-weight: bold;
+}
+span.term {
+	font-style: italic;
+}
+span.label {
+	font-weight: bold;
+}
+span.foreignPhrase, span.phrase {
+	font-style: italic;
+}
+span.placeholder {
+	font-style: italic;
+}
+span.typeparameter {
+	font-style: italic;
+}
+span.identifier {
+}
+span.keyword {
+	font-weight: bold;
+}
+span.parameter {
+	font-style: italic;
+}
+dt span.parameter {
+	font-weight: normal;
+}
+span.literal, span.literalValue {
+	color: #cc0000;
+}
+span.comment {
+	color: #006633;
+}
+span.introStyle {
+	color: #a9a9a9;
+}
+span.nolink {
+	font-weight: bold;
+}
+
+/* Auto-outline styles */
+ul.autoOutline {
+}
+li.outlineSectionEntry {
+}
+div.outlineSectionEntrySummary {
+}
+
+/* Media  styles */
+div.mediaNear {
+	text-align: left;
+	margin-top: 1em;
+	margin-bottom: 1em;
+}
+div.mediaFar {
+	text-align: right;
+	margin-top: 1em;
+	margin-bottom: 1em;
+}
+div.mediaCenter {
+	text-align: center;
+	margin-top: 1em;
+	margin-bottom: 1em;
+}
+span.captionLead {
+	font-weight: bold;
+	margin-right: .5em;
+}
+span.media img {
+	vertical-align: top;
+}
+
+/* Glossary styles */
+div.glossaryDiv {
+}
+div.glossaryLetterBar {
+}
+hr.glossaryRule {
+}
+h3.glossaryGroupHeading {
+	color: #808080;
+}
+div.glossaryGroup {
+}
+dl.glossaryGroupList {
+	margin: 0;
+	color: Black;
+}
+dt.glossaryEntry {
+	margin-left: 2em;
+}
+dd.glossaryEntry {
+	margin-left: 2em;
+	margin-bottom: 2em;
+}
+div.relatedEntry {
+	margin-bottom: 4px;
+}
+
+/* Bibliography styles */
+div.bibliographStyle {
+	padding-top: 5px;
+}
+span.bibliographyNumber {
+}
+span.bibliographyAuthor {
+	font-weight: bold;
+}
+span.bibliographyTitle {
+	font-style: italic;
+}
+span.bibliographyPublisher {
+}
+sup.citation a:link a:visited a:active {
+	text-decoration: none;
+}
+
+/* Placeholder for the Help 1 user data style class */
+.userDataStyle {
+}
diff --git a/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ChannelOptions.xml b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ChannelOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3270d758a1d8d67be05c64d42bc97c4e6a22d968
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ChannelOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ChannelOptions Fields" Url="html/Fields_T_Grpc_Core_ChannelOptions.htm"><HelpTOCNode Title="Census Field" Url="html/F_Grpc_Core_ChannelOptions_Census.htm" /><HelpTOCNode Title="DefaultAuthority Field" Url="html/F_Grpc_Core_ChannelOptions_DefaultAuthority.htm" /><HelpTOCNode Title="Http2InitialSequenceNumber Field" Url="html/F_Grpc_Core_ChannelOptions_Http2InitialSequenceNumber.htm" /><HelpTOCNode Title="MaxConcurrentStreams Field" Url="html/F_Grpc_Core_ChannelOptions_MaxConcurrentStreams.htm" /><HelpTOCNode Title="MaxMessageLength Field" Url="html/F_Grpc_Core_ChannelOptions_MaxMessageLength.htm" /><HelpTOCNode Title="PrimaryUserAgentString Field" Url="html/F_Grpc_Core_ChannelOptions_PrimaryUserAgentString.htm" /><HelpTOCNode Title="SecondaryUserAgentString Field" Url="html/F_Grpc_Core_ChannelOptions_SecondaryUserAgentString.htm" /><HelpTOCNode Title="SslTargetNameOverride Field" Url="html/F_Grpc_Core_ChannelOptions_SslTargetNameOverride.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ContextPropagationOptions.xml b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ContextPropagationOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2c4430b029c193f97078b65b983f8ecccca58d22
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ContextPropagationOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ContextPropagationOptions Fields" Url="html/Fields_T_Grpc_Core_ContextPropagationOptions.htm"><HelpTOCNode Title="Default Field" Url="html/F_Grpc_Core_ContextPropagationOptions_Default.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_Metadata.xml b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_Metadata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..286d4082d3f2c661c98252d8ab9f5348dc01dbfe
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_Metadata.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Metadata Fields" Url="html/Fields_T_Grpc_Core_Metadata.htm"><HelpTOCNode Title="BinaryHeaderSuffix Field" Url="html/F_Grpc_Core_Metadata_BinaryHeaderSuffix.htm" /><HelpTOCNode Title="Empty Field" Url="html/F_Grpc_Core_Metadata_Empty.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ServerPort.xml b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ServerPort.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7c5391eca60d4f1bed29863c34a991f808b31cb5
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_ServerPort.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerPort Fields" Url="html/Fields_T_Grpc_Core_ServerPort.htm"><HelpTOCNode Title="PickUnused Field" Url="html/F_Grpc_Core_ServerPort_PickUnused.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_Status.xml b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_Status.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6757777b9f1b3579a2ddce71b3fafdcf30c23ff6
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_Status.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Status Fields" Url="html/Fields_T_Grpc_Core_Status.htm"><HelpTOCNode Title="DefaultCancelled Field" Url="html/F_Grpc_Core_Status_DefaultCancelled.htm" /><HelpTOCNode Title="DefaultSuccess Field" Url="html/F_Grpc_Core_Status_DefaultSuccess.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_VersionInfo.xml b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_VersionInfo.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1962206e764c7273548a704186e140e682c95a56
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_VersionInfo.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="VersionInfo Fields" Url="html/Fields_T_Grpc_Core_VersionInfo.htm"><HelpTOCNode Title="CurrentVersion Field" Url="html/F_Grpc_Core_VersionInfo_CurrentVersion.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_WriteOptions.xml b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_WriteOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..21fb6dde0ae2f0a6884f7a1bd8c8a1f92a642290
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Fields_T_Grpc_Core_WriteOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="WriteOptions Fields" Url="html/Fields_T_Grpc_Core_WriteOptions.htm"><HelpTOCNode Title="Default Field" Url="html/F_Grpc_Core_WriteOptions_Default.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Auth_AuthInterceptors.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Auth_AuthInterceptors.xml
new file mode 100644
index 0000000000000000000000000000000000000000..acf36a906c92f236e565ddddd54bd4ec79e17ec6
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Auth_AuthInterceptors.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AuthInterceptors Methods" Url="html/Methods_T_Grpc_Auth_AuthInterceptors.htm"><HelpTOCNode Title="FromAccessToken Method " Url="html/M_Grpc_Auth_AuthInterceptors_FromAccessToken.htm" /><HelpTOCNode Title="FromCredential Method " Url="html/M_Grpc_Auth_AuthInterceptors_FromCredential.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..22aa4b27f30bc2c8248d6cc790ee27e748778cf3
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm"><HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_Dispose.htm" /><HelpTOCNode Title="GetAwaiter Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetAwaiter.htm" /><HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetStatus.htm" /><HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncClientStreamingCall_2_GetTrailers.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1cb7ed02566429d822f81c61b5f9fbc25ba4af00
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm"><HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_Dispose.htm" /><HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetStatus.htm" /><HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncDuplexStreamingCall_2_GetTrailers.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..77cea2d896b3fb4a7221ec88311d612a1a893d25
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncServerStreamingCall(TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm"><HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_Dispose.htm" /><HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetStatus.htm" /><HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncServerStreamingCall_1_GetTrailers.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncUnaryCall_1.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncUnaryCall_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..577502e6a0452b3cdbddd4f7b663df8e504f06eb
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_AsyncUnaryCall_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncUnaryCall(TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm"><HelpTOCNode Title="Dispose Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_Dispose.htm" /><HelpTOCNode Title="GetAwaiter Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetAwaiter.htm" /><HelpTOCNode Title="GetStatus Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetStatus.htm" /><HelpTOCNode Title="GetTrailers Method " Url="html/M_Grpc_Core_AsyncUnaryCall_1_GetTrailers.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_CallInvocationDetails_2.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_CallInvocationDetails_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..954f9fadb37101973531013f4c3379440e0f5b3a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_CallInvocationDetails_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm"><HelpTOCNode Title="WithOptions Method " Url="html/M_Grpc_Core_CallInvocationDetails_2_WithOptions.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_CallOptions.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_CallOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..728aebd0ad05b3e2ec13a1c2357bc996ffec9ac0
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_CallOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CallOptions Methods" Url="html/Methods_T_Grpc_Core_CallOptions.htm"><HelpTOCNode Title="WithCancellationToken Method " Url="html/M_Grpc_Core_CallOptions_WithCancellationToken.htm" /><HelpTOCNode Title="WithDeadline Method " Url="html/M_Grpc_Core_CallOptions_WithDeadline.htm" /><HelpTOCNode Title="WithHeaders Method " Url="html/M_Grpc_Core_CallOptions_WithHeaders.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Calls.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Calls.xml
new file mode 100644
index 0000000000000000000000000000000000000000..15004efc43a12875d94b49455f94564ee6ed9750
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Calls.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Calls Methods" Url="html/Methods_T_Grpc_Core_Calls.htm"><HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncClientStreamingCall__2.htm" /><HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncDuplexStreamingCall__2.htm" /><HelpTOCNode Title="AsyncServerStreamingCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncServerStreamingCall__2.htm" /><HelpTOCNode Title="AsyncUnaryCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_AsyncUnaryCall__2.htm" /><HelpTOCNode Title="BlockingUnaryCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_Calls_BlockingUnaryCall__2.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Channel.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Channel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..82a1d9c7a0c6b5ca5862802896b7c7053028ab17
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Channel.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Channel Methods" Url="html/Methods_T_Grpc_Core_Channel.htm"><HelpTOCNode Title="ConnectAsync Method " Url="html/M_Grpc_Core_Channel_ConnectAsync.htm" /><HelpTOCNode Title="ShutdownAsync Method " Url="html/M_Grpc_Core_Channel_ShutdownAsync.htm" /><HelpTOCNode Title="WaitForStateChangedAsync Method " Url="html/M_Grpc_Core_Channel_WaitForStateChangedAsync.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ClientBase.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ClientBase.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a2f2d35c9867552e4f4fa6685db56ed72aa2e14a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ClientBase.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ClientBase Methods" Url="html/Methods_T_Grpc_Core_ClientBase.htm"><HelpTOCNode Title="CreateCall(TRequest, TResponse) Method " Url="html/M_Grpc_Core_ClientBase_CreateCall__2.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_GrpcEnvironment.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_GrpcEnvironment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2035e7220060b2588fc190b9df30934427ce89f6
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_GrpcEnvironment.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="GrpcEnvironment Methods" Url="html/Methods_T_Grpc_Core_GrpcEnvironment.htm"><HelpTOCNode Title="SetLogger Method " Url="html/M_Grpc_Core_GrpcEnvironment_SetLogger.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_IAsyncStreamWriter_1.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_IAsyncStreamWriter_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fa63f659de29fdc6f988099eeaa7b2c7aa751847
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_IAsyncStreamWriter_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IAsyncStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm"><HelpTOCNode Title="WriteAsync Method " Url="html/M_Grpc_Core_IAsyncStreamWriter_1_WriteAsync.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_IClientStreamWriter_1.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_IClientStreamWriter_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2d1cda8c2e376dcf06a185504e8ac4d29e530cfe
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_IClientStreamWriter_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IClientStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm"><HelpTOCNode Title="CompleteAsync Method " Url="html/M_Grpc_Core_IClientStreamWriter_1_CompleteAsync.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Logging_ConsoleLogger.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Logging_ConsoleLogger.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e43c4157ba9514bcc0afcd202efe8d6ebbf723c2
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Logging_ConsoleLogger.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ConsoleLogger Methods" Url="html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm"><HelpTOCNode Title="Debug Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_Debug.htm" /><HelpTOCNode Title="Error Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm" HasChildren="true" /><HelpTOCNode Title="ForType(T) Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_ForType__1.htm" /><HelpTOCNode Title="Info Method " Url="html/M_Grpc_Core_Logging_ConsoleLogger_Info.htm" /><HelpTOCNode Title="Warning Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Logging_ILogger.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Logging_ILogger.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0b32dd3e9d4f10f5cf1cb3fee2e107644f4df268
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Logging_ILogger.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ILogger Methods" Url="html/Methods_T_Grpc_Core_Logging_ILogger.htm"><HelpTOCNode Title="Debug Method " Url="html/M_Grpc_Core_Logging_ILogger_Debug.htm" /><HelpTOCNode Title="Error Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Error.htm" HasChildren="true" /><HelpTOCNode Title="ForType(T) Method " Url="html/M_Grpc_Core_Logging_ILogger_ForType__1.htm" /><HelpTOCNode Title="Info Method " Url="html/M_Grpc_Core_Logging_ILogger_Info.htm" /><HelpTOCNode Title="Warning Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Warning.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Marshallers.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Marshallers.xml
new file mode 100644
index 0000000000000000000000000000000000000000..8256f81f19646f5f33b66461eca7be3160c4aa93
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Marshallers.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Marshallers Methods" Url="html/Methods_T_Grpc_Core_Marshallers.htm"><HelpTOCNode Title="Create(T) Method " Url="html/M_Grpc_Core_Marshallers_Create__1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Metadata.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Metadata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5332983a9bd37d57c02e4157907cfdaa78c30e7a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Metadata.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Metadata Methods" Url="html/Methods_T_Grpc_Core_Metadata.htm"><HelpTOCNode Title="Add Method " Url="html/Overload_Grpc_Core_Metadata_Add.htm" HasChildren="true" /><HelpTOCNode Title="Clear Method " Url="html/M_Grpc_Core_Metadata_Clear.htm" /><HelpTOCNode Title="Contains Method " Url="html/M_Grpc_Core_Metadata_Contains.htm" /><HelpTOCNode Title="CopyTo Method " Url="html/M_Grpc_Core_Metadata_CopyTo.htm" /><HelpTOCNode Title="GetEnumerator Method " Url="html/M_Grpc_Core_Metadata_GetEnumerator.htm" /><HelpTOCNode Title="IndexOf Method " Url="html/M_Grpc_Core_Metadata_IndexOf.htm" /><HelpTOCNode Title="Insert Method " Url="html/M_Grpc_Core_Metadata_Insert.htm" /><HelpTOCNode Title="Remove Method " Url="html/M_Grpc_Core_Metadata_Remove.htm" /><HelpTOCNode Title="RemoveAt Method " Url="html/M_Grpc_Core_Metadata_RemoveAt.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Metadata_Entry.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Metadata_Entry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..906d34512cd9789ff54eb5b0d26962d158e211aa
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Metadata_Entry.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Entry Methods" Url="html/Methods_T_Grpc_Core_Metadata_Entry.htm"><HelpTOCNode Title="ToString Method " Url="html/M_Grpc_Core_Metadata_Entry_ToString.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server.xml
new file mode 100644
index 0000000000000000000000000000000000000000..98413ca066e785be2e9cf71caad65f6f9b880a90
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Server Methods" Url="html/Methods_T_Grpc_Core_Server.htm"><HelpTOCNode Title="KillAsync Method " Url="html/M_Grpc_Core_Server_KillAsync.htm" /><HelpTOCNode Title="ShutdownAsync Method " Url="html/M_Grpc_Core_Server_ShutdownAsync.htm" /><HelpTOCNode Title="Start Method " Url="html/M_Grpc_Core_Server_Start.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerCallContext.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerCallContext.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0c49a01fcf5aa202ec4a4adafdc8e91478e3bdac
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerCallContext.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerCallContext Methods" Url="html/Methods_T_Grpc_Core_ServerCallContext.htm"><HelpTOCNode Title="CreatePropagationToken Method " Url="html/M_Grpc_Core_ServerCallContext_CreatePropagationToken.htm" /><HelpTOCNode Title="WriteResponseHeadersAsync Method " Url="html/M_Grpc_Core_ServerCallContext_WriteResponseHeadersAsync.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerServiceDefinition.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerServiceDefinition.xml
new file mode 100644
index 0000000000000000000000000000000000000000..96e06c8217c72579142a61d174b992e54054187c
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerServiceDefinition.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerServiceDefinition Methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition.htm"><HelpTOCNode Title="CreateBuilder Method " Url="html/M_Grpc_Core_ServerServiceDefinition_CreateBuilder.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7c1e09d746ad45890a428f9ef3045a4b082411d1
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Builder Methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm"><HelpTOCNode Title="AddMethod Method " Url="html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm" HasChildren="true" /><HelpTOCNode Title="Build Method " Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_Build.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server_ServerPortCollection.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server_ServerPortCollection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ae1470ea80404acbe60380851cfa310a7edc1d51
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server_ServerPortCollection.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerPortCollection Methods" Url="html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm"><HelpTOCNode Title="Add Method " Url="html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm" HasChildren="true" /><HelpTOCNode Title="GetEnumerator Method " Url="html/M_Grpc_Core_Server_ServerPortCollection_GetEnumerator.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ac1bbdb8b92c9ff8718bab08261ec26e92f3ae90
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServiceDefinitionCollection Methods" Url="html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm"><HelpTOCNode Title="Add Method " Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_Add.htm" /><HelpTOCNode Title="GetEnumerator Method " Url="html/M_Grpc_Core_Server_ServiceDefinitionCollection_GetEnumerator.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Status.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Status.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b3f16eb9ceddbc1c7a26f439ee3a724190c19360
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Status.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Status Methods" Url="html/Methods_T_Grpc_Core_Status.htm"><HelpTOCNode Title="ToString Method " Url="html/M_Grpc_Core_Status_ToString.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d667d519ffeef2b3f41e0a00b2918ae1d780af2d
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncStreamExtensions Methods" Url="html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm"><HelpTOCNode Title="ForEachAsync(T) Method " Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ForEachAsync__1.htm" /><HelpTOCNode Title="ToListAsync(T) Method " Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_ToListAsync__1.htm" /><HelpTOCNode Title="WriteAllAsync Method " Url="html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_BenchmarkUtil.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_BenchmarkUtil.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ca4c3a5be50c0da8d03db80f50f88a25da529ef8
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_BenchmarkUtil.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="BenchmarkUtil Methods" Url="html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm"><HelpTOCNode Title="RunBenchmark Method " Url="html/M_Grpc_Core_Utils_BenchmarkUtil_RunBenchmark.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_Preconditions.xml b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_Preconditions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7770ff8019350a17e3332c827706f3a2e1eedd14
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Methods_T_Grpc_Core_Utils_Preconditions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Preconditions Methods" Url="html/Methods_T_Grpc_Core_Utils_Preconditions.htm"><HelpTOCNode Title="CheckArgument Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm" HasChildren="true" /><HelpTOCNode Title="CheckNotNull Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm" HasChildren="true" /><HelpTOCNode Title="CheckState Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/N_Grpc_Auth.xml b/doc/ref/csharp/html/toc/N_Grpc_Auth.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c38c9e88bbdc34e11081e3c5af651f41c151bdf8
--- /dev/null
+++ b/doc/ref/csharp/html/toc/N_Grpc_Auth.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Grpc.Auth" Url="html/N_Grpc_Auth.htm"><HelpTOCNode Title="AuthInterceptors Class" Url="html/T_Grpc_Auth_AuthInterceptors.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/N_Grpc_Core.xml b/doc/ref/csharp/html/toc/N_Grpc_Core.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bf8cd54b219e8b3ea0d02f935a28a00057a0020e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/N_Grpc_Core.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Grpc.Core" Url="html/N_Grpc_Core.htm"><HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm" HasChildren="true" /><HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" HasChildren="true" /><HelpTOCNode Title="AsyncServerStreamingCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm" HasChildren="true" /><HelpTOCNode Title="AsyncUnaryCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm" HasChildren="true" /><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm" HasChildren="true" /><HelpTOCNode Title="CallOptions Structure" Url="html/T_Grpc_Core_CallOptions.htm" HasChildren="true" /><HelpTOCNode Title="Calls Class" Url="html/T_Grpc_Core_Calls.htm" HasChildren="true" /><HelpTOCNode Title="Channel Class" Url="html/T_Grpc_Core_Channel.htm" HasChildren="true" /><HelpTOCNode Title="ChannelOption Class" Url="html/T_Grpc_Core_ChannelOption.htm" HasChildren="true" /><HelpTOCNode Title="ChannelOption.OptionType Enumeration" Url="html/T_Grpc_Core_ChannelOption_OptionType.htm" /><HelpTOCNode Title="ChannelOptions Class" Url="html/T_Grpc_Core_ChannelOptions.htm" HasChildren="true" /><HelpTOCNode Title="ChannelState Enumeration" Url="html/T_Grpc_Core_ChannelState.htm" /><HelpTOCNode Title="ClientBase Class" Url="html/T_Grpc_Core_ClientBase.htm" HasChildren="true" /><HelpTOCNode Title="ClientStreamingServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_ClientStreamingServerMethod_2.htm" /><HelpTOCNode Title="CompressionLevel Enumeration" Url="html/T_Grpc_Core_CompressionLevel.htm" /><HelpTOCNode Title="ContextPropagationOptions Class" Url="html/T_Grpc_Core_ContextPropagationOptions.htm" HasChildren="true" /><HelpTOCNode Title="ContextPropagationToken Class" Url="html/T_Grpc_Core_ContextPropagationToken.htm" HasChildren="true" /><HelpTOCNode Title="Credentials Class" Url="html/T_Grpc_Core_Credentials.htm" HasChildren="true" /><HelpTOCNode Title="DuplexStreamingServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_DuplexStreamingServerMethod_2.htm" /><HelpTOCNode Title="GrpcEnvironment Class" Url="html/T_Grpc_Core_GrpcEnvironment.htm" HasChildren="true" /><HelpTOCNode Title="HeaderInterceptor Delegate" Url="html/T_Grpc_Core_HeaderInterceptor.htm" /><HelpTOCNode Title="IAsyncStreamReader(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm" HasChildren="true" /><HelpTOCNode Title="IAsyncStreamWriter(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm" HasChildren="true" /><HelpTOCNode Title="IClientStreamWriter(T) Interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm" HasChildren="true" /><HelpTOCNode Title="IHasWriteOptions Interface" Url="html/T_Grpc_Core_IHasWriteOptions.htm" HasChildren="true" /><HelpTOCNode Title="IMethod Interface" Url="html/T_Grpc_Core_IMethod.htm" HasChildren="true" /><HelpTOCNode Title="IServerStreamWriter(T) Interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm" HasChildren="true" /><HelpTOCNode Title="KeyCertificatePair Class" Url="html/T_Grpc_Core_KeyCertificatePair.htm" HasChildren="true" /><HelpTOCNode Title="Marshaller(T) Structure" Url="html/T_Grpc_Core_Marshaller_1.htm" HasChildren="true" /><HelpTOCNode Title="Marshallers Class" Url="html/T_Grpc_Core_Marshallers.htm" HasChildren="true" /><HelpTOCNode Title="Metadata Class" Url="html/T_Grpc_Core_Metadata.htm" HasChildren="true" /><HelpTOCNode Title="Metadata.Entry Structure" Url="html/T_Grpc_Core_Metadata_Entry.htm" HasChildren="true" /><HelpTOCNode Title="Method(TRequest, TResponse) Class" Url="html/T_Grpc_Core_Method_2.htm" HasChildren="true" /><HelpTOCNode Title="MethodType Enumeration" Url="html/T_Grpc_Core_MethodType.htm" /><HelpTOCNode Title="RpcException Class" Url="html/T_Grpc_Core_RpcException.htm" HasChildren="true" /><HelpTOCNode Title="Server Class" Url="html/T_Grpc_Core_Server.htm" HasChildren="true" /><HelpTOCNode Title="Server.ServerPortCollection Class" Url="html/T_Grpc_Core_Server_ServerPortCollection.htm" HasChildren="true" /><HelpTOCNode Title="Server.ServiceDefinitionCollection Class" Url="html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm" HasChildren="true" /><HelpTOCNode Title="ServerCallContext Class" Url="html/T_Grpc_Core_ServerCallContext.htm" HasChildren="true" /><HelpTOCNode Title="ServerCredentials Class" Url="html/T_Grpc_Core_ServerCredentials.htm" HasChildren="true" /><HelpTOCNode Title="ServerPort Class" Url="html/T_Grpc_Core_ServerPort.htm" HasChildren="true" /><HelpTOCNode Title="ServerServiceDefinition Class" Url="html/T_Grpc_Core_ServerServiceDefinition.htm" HasChildren="true" /><HelpTOCNode Title="ServerServiceDefinition.Builder Class" Url="html/T_Grpc_Core_ServerServiceDefinition_Builder.htm" HasChildren="true" /><HelpTOCNode Title="ServerStreamingServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_ServerStreamingServerMethod_2.htm" /><HelpTOCNode Title="SslCredentials Class" Url="html/T_Grpc_Core_SslCredentials.htm" HasChildren="true" /><HelpTOCNode Title="SslServerCredentials Class" Url="html/T_Grpc_Core_SslServerCredentials.htm" HasChildren="true" /><HelpTOCNode Title="Status Structure" Url="html/T_Grpc_Core_Status.htm" HasChildren="true" /><HelpTOCNode Title="StatusCode Enumeration" Url="html/T_Grpc_Core_StatusCode.htm" /><HelpTOCNode Title="UnaryServerMethod(TRequest, TResponse) Delegate" Url="html/T_Grpc_Core_UnaryServerMethod_2.htm" /><HelpTOCNode Title="VersionInfo Class" Url="html/T_Grpc_Core_VersionInfo.htm" HasChildren="true" /><HelpTOCNode Title="WriteFlags Enumeration" Url="html/T_Grpc_Core_WriteFlags.htm" /><HelpTOCNode Title="WriteOptions Class" Url="html/T_Grpc_Core_WriteOptions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/N_Grpc_Core_Logging.xml b/doc/ref/csharp/html/toc/N_Grpc_Core_Logging.xml
new file mode 100644
index 0000000000000000000000000000000000000000..714ea70204647564096a09ac80b97dab1757108d
--- /dev/null
+++ b/doc/ref/csharp/html/toc/N_Grpc_Core_Logging.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Grpc.Core.Logging" Url="html/N_Grpc_Core_Logging.htm"><HelpTOCNode Title="ConsoleLogger Class" Url="html/T_Grpc_Core_Logging_ConsoleLogger.htm" HasChildren="true" /><HelpTOCNode Title="ILogger Interface" Url="html/T_Grpc_Core_Logging_ILogger.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/N_Grpc_Core_Utils.xml b/doc/ref/csharp/html/toc/N_Grpc_Core_Utils.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0380ca3af6e74f656890b565e2b489e283a5ccaa
--- /dev/null
+++ b/doc/ref/csharp/html/toc/N_Grpc_Core_Utils.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Grpc.Core.Utils" Url="html/N_Grpc_Core_Utils.htm"><HelpTOCNode Title="AsyncStreamExtensions Class" Url="html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm" HasChildren="true" /><HelpTOCNode Title="BenchmarkUtil Class" Url="html/T_Grpc_Core_Utils_BenchmarkUtil.htm" HasChildren="true" /><HelpTOCNode Title="Preconditions Class" Url="html/T_Grpc_Core_Utils_Preconditions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_CallInvocationDetails_2__ctor.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_CallInvocationDetails_2__ctor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..14136c8343e0ea6ca5c70e2a53675068cc92b8ad
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_CallInvocationDetails_2__ctor.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor " Url="html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm"><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), CallOptions)" Url="html/M_Grpc_Core_CallInvocationDetails_2__ctor.htm" /><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, Method(TRequest, TResponse), String, CallOptions)" Url="html/M_Grpc_Core_CallInvocationDetails_2__ctor_1.htm" /><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor (Channel, String, String, Marshaller(TRequest), Marshaller(TResponse), CallOptions)" Url="html/M_Grpc_Core_CallInvocationDetails_2__ctor_2.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_ChannelOption__ctor.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_ChannelOption__ctor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2dca1f5a6ee5cbbfc44015678da7a51b45a8fa2e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_ChannelOption__ctor.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ChannelOption Constructor " Url="html/Overload_Grpc_Core_ChannelOption__ctor.htm"><HelpTOCNode Title="ChannelOption Constructor (String, Int32)" Url="html/M_Grpc_Core_ChannelOption__ctor.htm" /><HelpTOCNode Title="ChannelOption Constructor (String, String)" Url="html/M_Grpc_Core_ChannelOption__ctor_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Channel__ctor.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Channel__ctor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..1b954cd4f70a709785c84760e9bd24f42d8c1b3e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Channel__ctor.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Channel Constructor " Url="html/Overload_Grpc_Core_Channel__ctor.htm"><HelpTOCNode Title="Channel Constructor (String, Credentials, IEnumerable(ChannelOption))" Url="html/M_Grpc_Core_Channel__ctor.htm" /><HelpTOCNode Title="Channel Constructor (String, Int32, Credentials, IEnumerable(ChannelOption))" Url="html/M_Grpc_Core_Channel__ctor_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ConsoleLogger_Error.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ConsoleLogger_Error.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7dcdd7f7e18fccb37bef3ee76de991d6a0f020de
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ConsoleLogger_Error.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Error Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Error.htm"><HelpTOCNode Title="Error Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Error_1.htm" /><HelpTOCNode Title="Error Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Error.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ab90f1c0dcb112d9abd1d47902198e2c01931956
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Warning Method " Url="html/Overload_Grpc_Core_Logging_ConsoleLogger_Warning.htm"><HelpTOCNode Title="Warning Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Warning_1.htm" /><HelpTOCNode Title="Warning Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ConsoleLogger_Warning.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ILogger_Error.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ILogger_Error.xml
new file mode 100644
index 0000000000000000000000000000000000000000..dd47a40c1e218c71313a88519479fd7fe6164972
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ILogger_Error.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Error Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Error.htm"><HelpTOCNode Title="Error Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Error_1.htm" /><HelpTOCNode Title="Error Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Error.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ILogger_Warning.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ILogger_Warning.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b6b2ccc721e5d2d0d1b797bb34061633c41b685b
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Logging_ILogger_Warning.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Warning Method " Url="html/Overload_Grpc_Core_Logging_ILogger_Warning.htm"><HelpTOCNode Title="Warning Method (String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Warning_1.htm" /><HelpTOCNode Title="Warning Method (Exception, String, Object[])" Url="html/M_Grpc_Core_Logging_ILogger_Warning.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Metadata_Add.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Metadata_Add.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7ad9ece2b86a48e1443c96d4b873dbf7b7ce6be5
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Metadata_Add.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Add Method " Url="html/Overload_Grpc_Core_Metadata_Add.htm"><HelpTOCNode Title="Add Method (Metadata.Entry)" Url="html/M_Grpc_Core_Metadata_Add.htm" /><HelpTOCNode Title="Add Method (String, Byte[])" Url="html/M_Grpc_Core_Metadata_Add_1.htm" /><HelpTOCNode Title="Add Method (String, String)" Url="html/M_Grpc_Core_Metadata_Add_2.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Metadata_Entry__ctor.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Metadata_Entry__ctor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0bb3ab2d925fb2840ed52da0560f07b7464cc9c1
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Metadata_Entry__ctor.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Entry Constructor " Url="html/Overload_Grpc_Core_Metadata_Entry__ctor.htm"><HelpTOCNode Title="Metadata.Entry Constructor (String, Byte[])" Url="html/M_Grpc_Core_Metadata_Entry__ctor.htm" /><HelpTOCNode Title="Metadata.Entry Constructor (String, String)" Url="html/M_Grpc_Core_Metadata_Entry__ctor_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_RpcException__ctor.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_RpcException__ctor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..011031f2fbd22321c07f132203d5b1edd8e29f3a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_RpcException__ctor.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="RpcException Constructor " Url="html/Overload_Grpc_Core_RpcException__ctor.htm"><HelpTOCNode Title="RpcException Constructor (Status)" Url="html/M_Grpc_Core_RpcException__ctor.htm" /><HelpTOCNode Title="RpcException Constructor (Status, String)" Url="html/M_Grpc_Core_RpcException__ctor_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.xml
new file mode 100644
index 0000000000000000000000000000000000000000..172e33a44bc6ec2915dcb76127888d999636b802
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AddMethod Method " Url="html/Overload_Grpc_Core_ServerServiceDefinition_Builder_AddMethod.htm"><HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ClientStreamingServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2.htm" /><HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), DuplexStreamingServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_1.htm" /><HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), ServerStreamingServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_2.htm" /><HelpTOCNode Title="AddMethod(TRequest, TResponse) Method (Method(TRequest, TResponse), UnaryServerMethod(TRequest, TResponse))" Url="html/M_Grpc_Core_ServerServiceDefinition_Builder_AddMethod__2_3.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Server_ServerPortCollection_Add.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Server_ServerPortCollection_Add.xml
new file mode 100644
index 0000000000000000000000000000000000000000..01f69d8a2b1d3b75fe1347e61eebb848530fb528
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Server_ServerPortCollection_Add.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Add Method " Url="html/Overload_Grpc_Core_Server_ServerPortCollection_Add.htm"><HelpTOCNode Title="Add Method (ServerPort)" Url="html/M_Grpc_Core_Server_ServerPortCollection_Add.htm" /><HelpTOCNode Title="Add Method (String, Int32, ServerCredentials)" Url="html/M_Grpc_Core_Server_ServerPortCollection_Add_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_SslCredentials__ctor.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_SslCredentials__ctor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..db12484687438cbb828bfcd926bedd9d6e9fb78f
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_SslCredentials__ctor.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="SslCredentials Constructor " Url="html/Overload_Grpc_Core_SslCredentials__ctor.htm"><HelpTOCNode Title="SslCredentials Constructor " Url="html/M_Grpc_Core_SslCredentials__ctor.htm" /><HelpTOCNode Title="SslCredentials Constructor (String)" Url="html/M_Grpc_Core_SslCredentials__ctor_1.htm" /><HelpTOCNode Title="SslCredentials Constructor (String, KeyCertificatePair)" Url="html/M_Grpc_Core_SslCredentials__ctor_2.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_SslServerCredentials__ctor.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_SslServerCredentials__ctor.xml
new file mode 100644
index 0000000000000000000000000000000000000000..74ef238258c145a672e79e3b94ca5332c240b05e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_SslServerCredentials__ctor.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="SslServerCredentials Constructor " Url="html/Overload_Grpc_Core_SslServerCredentials__ctor.htm"><HelpTOCNode Title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair))" Url="html/M_Grpc_Core_SslServerCredentials__ctor.htm" /><HelpTOCNode Title="SslServerCredentials Constructor (IEnumerable(KeyCertificatePair), String, Boolean)" Url="html/M_Grpc_Core_SslServerCredentials__ctor_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.xml
new file mode 100644
index 0000000000000000000000000000000000000000..19ff88af8d6f2ba1a79e3be620cecc26b19fe1e1
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="WriteAllAsync Method " Url="html/Overload_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync.htm"><HelpTOCNode Title="WriteAllAsync(T) Method (IServerStreamWriter(T), IEnumerable(T))" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1_1.htm" /><HelpTOCNode Title="WriteAllAsync(T) Method (IClientStreamWriter(T), IEnumerable(T), Boolean)" Url="html/M_Grpc_Core_Utils_AsyncStreamExtensions_WriteAllAsync__1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c92e748cfca7fd02d7c627dd152ca99cc2f04472
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CheckArgument Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckArgument.htm"><HelpTOCNode Title="CheckArgument Method (Boolean)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckArgument.htm" /><HelpTOCNode Title="CheckArgument Method (Boolean, String)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckArgument_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c70fd8a4a22ddea24ae56f8be21613523a870cf4
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CheckNotNull Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckNotNull.htm"><HelpTOCNode Title="CheckNotNull(T) Method (T)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1.htm" /><HelpTOCNode Title="CheckNotNull(T) Method (T, String)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckNotNull__1_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckState.xml b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckState.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6aa498a170863b46c38fffae5cd64d0cf0e30592
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Overload_Grpc_Core_Utils_Preconditions_CheckState.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CheckState Method " Url="html/Overload_Grpc_Core_Utils_Preconditions_CheckState.htm"><HelpTOCNode Title="CheckState Method (Boolean)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckState.htm" /><HelpTOCNode Title="CheckState Method (Boolean, String)" Url="html/M_Grpc_Core_Utils_Preconditions_CheckState_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f0b84999dfc7deb69bdffbd18c8eba896e759d06
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm"><HelpTOCNode Title="RequestStream Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_RequestStream.htm" /><HelpTOCNode Title="ResponseAsync Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseAsync.htm" /><HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncClientStreamingCall_2_ResponseHeadersAsync.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bcbd985aed7ace7139d36784d3c7c7c527704769
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm"><HelpTOCNode Title="RequestStream Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_RequestStream.htm" /><HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseHeadersAsync.htm" /><HelpTOCNode Title="ResponseStream Property " Url="html/P_Grpc_Core_AsyncDuplexStreamingCall_2_ResponseStream.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..13a9c18f37bb28842111a4cb106c13570317c738
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncServerStreamingCall(TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm"><HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseHeadersAsync.htm" /><HelpTOCNode Title="ResponseStream Property " Url="html/P_Grpc_Core_AsyncServerStreamingCall_1_ResponseStream.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncUnaryCall_1.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncUnaryCall_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f7aacbd9eb370f4fb1af515118c97fa7feaab789
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_AsyncUnaryCall_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncUnaryCall(TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm"><HelpTOCNode Title="ResponseAsync Property " Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseAsync.htm" /><HelpTOCNode Title="ResponseHeadersAsync Property " Url="html/P_Grpc_Core_AsyncUnaryCall_1_ResponseHeadersAsync.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_CallInvocationDetails_2.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_CallInvocationDetails_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..39900b479fa315723876f5021fc59c72c6732a28
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_CallInvocationDetails_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm"><HelpTOCNode Title="Channel Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Channel.htm" /><HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Host.htm" /><HelpTOCNode Title="Method Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Method.htm" /><HelpTOCNode Title="Options Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_Options.htm" /><HelpTOCNode Title="RequestMarshaller Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_RequestMarshaller.htm" /><HelpTOCNode Title="ResponseMarshaller Property " Url="html/P_Grpc_Core_CallInvocationDetails_2_ResponseMarshaller.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_CallOptions.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_CallOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..13d5746aa59e1084db89843e902c972410f7fc15
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_CallOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CallOptions Properties" Url="html/Properties_T_Grpc_Core_CallOptions.htm"><HelpTOCNode Title="CancellationToken Property " Url="html/P_Grpc_Core_CallOptions_CancellationToken.htm" /><HelpTOCNode Title="Deadline Property " Url="html/P_Grpc_Core_CallOptions_Deadline.htm" /><HelpTOCNode Title="Headers Property " Url="html/P_Grpc_Core_CallOptions_Headers.htm" /><HelpTOCNode Title="PropagationToken Property " Url="html/P_Grpc_Core_CallOptions_PropagationToken.htm" /><HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_CallOptions_WriteOptions.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Channel.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Channel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3ccb9f7d5f6cd17c5017eaa37e81a12fdadd907d
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Channel.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Channel Properties" Url="html/Properties_T_Grpc_Core_Channel.htm"><HelpTOCNode Title="ResolvedTarget Property " Url="html/P_Grpc_Core_Channel_ResolvedTarget.htm" /><HelpTOCNode Title="State Property " Url="html/P_Grpc_Core_Channel_State.htm" /><HelpTOCNode Title="Target Property " Url="html/P_Grpc_Core_Channel_Target.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ChannelOption.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ChannelOption.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f5035d4b0869ef7e2f10da99b1fd78b632b0ce3e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ChannelOption.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ChannelOption Properties" Url="html/Properties_T_Grpc_Core_ChannelOption.htm"><HelpTOCNode Title="IntValue Property " Url="html/P_Grpc_Core_ChannelOption_IntValue.htm" /><HelpTOCNode Title="Name Property " Url="html/P_Grpc_Core_ChannelOption_Name.htm" /><HelpTOCNode Title="StringValue Property " Url="html/P_Grpc_Core_ChannelOption_StringValue.htm" /><HelpTOCNode Title="Type Property " Url="html/P_Grpc_Core_ChannelOption_Type.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ClientBase.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ClientBase.xml
new file mode 100644
index 0000000000000000000000000000000000000000..278b6d2dc7cfafbb8999122cdaf811a108717850
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ClientBase.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ClientBase Properties" Url="html/Properties_T_Grpc_Core_ClientBase.htm"><HelpTOCNode Title="Channel Property " Url="html/P_Grpc_Core_ClientBase_Channel.htm" /><HelpTOCNode Title="HeaderInterceptor Property " Url="html/P_Grpc_Core_ClientBase_HeaderInterceptor.htm" /><HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_ClientBase_Host.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ContextPropagationOptions.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ContextPropagationOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f1c74ec514d615cdd3df8559d9264d278d4fb19b
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ContextPropagationOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ContextPropagationOptions Properties" Url="html/Properties_T_Grpc_Core_ContextPropagationOptions.htm"><HelpTOCNode Title="IsPropagateCancellation Property " Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateCancellation.htm" /><HelpTOCNode Title="IsPropagateDeadline Property " Url="html/P_Grpc_Core_ContextPropagationOptions_IsPropagateDeadline.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Credentials.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Credentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..df6433582b03103b81146c5f19663993ceb1b704
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Credentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Credentials Properties" Url="html/Properties_T_Grpc_Core_Credentials.htm"><HelpTOCNode Title="Insecure Property " Url="html/P_Grpc_Core_Credentials_Insecure.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_GrpcEnvironment.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_GrpcEnvironment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f817e180bb530eb512656038f1733e62536af979
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_GrpcEnvironment.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="GrpcEnvironment Properties" Url="html/Properties_T_Grpc_Core_GrpcEnvironment.htm"><HelpTOCNode Title="Logger Property " Url="html/P_Grpc_Core_GrpcEnvironment_Logger.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IAsyncStreamWriter_1.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IAsyncStreamWriter_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6ef46a43fda38ce4381f0a92c6a1a1bbcaf13052
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IAsyncStreamWriter_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IAsyncStreamWriter(T) Properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm"><HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_IAsyncStreamWriter_1_WriteOptions.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IHasWriteOptions.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IHasWriteOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b80fa3a04c4e0b85dc8307830a85764b3f07d272
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IHasWriteOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IHasWriteOptions Properties" Url="html/Properties_T_Grpc_Core_IHasWriteOptions.htm"><HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_IHasWriteOptions_WriteOptions.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IMethod.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IMethod.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e51b6128a3709834407c89853744be6bd34a378c
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_IMethod.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IMethod Properties" Url="html/Properties_T_Grpc_Core_IMethod.htm"><HelpTOCNode Title="FullName Property " Url="html/P_Grpc_Core_IMethod_FullName.htm" /><HelpTOCNode Title="Name Property " Url="html/P_Grpc_Core_IMethod_Name.htm" /><HelpTOCNode Title="ServiceName Property " Url="html/P_Grpc_Core_IMethod_ServiceName.htm" /><HelpTOCNode Title="Type Property " Url="html/P_Grpc_Core_IMethod_Type.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_KeyCertificatePair.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_KeyCertificatePair.xml
new file mode 100644
index 0000000000000000000000000000000000000000..597f97973102cf7ff4399f27c0bf97fe8f715b71
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_KeyCertificatePair.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="KeyCertificatePair Properties" Url="html/Properties_T_Grpc_Core_KeyCertificatePair.htm"><HelpTOCNode Title="CertificateChain Property " Url="html/P_Grpc_Core_KeyCertificatePair_CertificateChain.htm" /><HelpTOCNode Title="PrivateKey Property " Url="html/P_Grpc_Core_KeyCertificatePair_PrivateKey.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Marshaller_1.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Marshaller_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5523dadcbe0e2e69f88ef22d1b495b9bdffcc6cf
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Marshaller_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Marshaller(T) Properties" Url="html/Properties_T_Grpc_Core_Marshaller_1.htm"><HelpTOCNode Title="Deserializer Property " Url="html/P_Grpc_Core_Marshaller_1_Deserializer.htm" /><HelpTOCNode Title="Serializer Property " Url="html/P_Grpc_Core_Marshaller_1_Serializer.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Marshallers.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Marshallers.xml
new file mode 100644
index 0000000000000000000000000000000000000000..996f6e701099c9eb68a48e3df7bb1bfa562bf87d
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Marshallers.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Marshallers Properties" Url="html/Properties_T_Grpc_Core_Marshallers.htm"><HelpTOCNode Title="StringMarshaller Property " Url="html/P_Grpc_Core_Marshallers_StringMarshaller.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Metadata.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Metadata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ddafcbeef79feda8811521e2c971e65981e6b030
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Metadata.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Metadata Properties" Url="html/Properties_T_Grpc_Core_Metadata.htm"><HelpTOCNode Title="Count Property " Url="html/P_Grpc_Core_Metadata_Count.htm" /><HelpTOCNode Title="IsReadOnly Property " Url="html/P_Grpc_Core_Metadata_IsReadOnly.htm" /><HelpTOCNode Title="Item Property " Url="html/P_Grpc_Core_Metadata_Item.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Metadata_Entry.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Metadata_Entry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6259d4a1cf4ee23b66731205c79b30ec307dbc68
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Metadata_Entry.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Entry Properties" Url="html/Properties_T_Grpc_Core_Metadata_Entry.htm"><HelpTOCNode Title="IsBinary Property " Url="html/P_Grpc_Core_Metadata_Entry_IsBinary.htm" /><HelpTOCNode Title="Key Property " Url="html/P_Grpc_Core_Metadata_Entry_Key.htm" /><HelpTOCNode Title="Value Property " Url="html/P_Grpc_Core_Metadata_Entry_Value.htm" /><HelpTOCNode Title="ValueBytes Property " Url="html/P_Grpc_Core_Metadata_Entry_ValueBytes.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Method_2.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Method_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..815903139286480278232363e95bcd6a64b1f699
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Method_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Method(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_Method_2.htm"><HelpTOCNode Title="FullName Property " Url="html/P_Grpc_Core_Method_2_FullName.htm" /><HelpTOCNode Title="Name Property " Url="html/P_Grpc_Core_Method_2_Name.htm" /><HelpTOCNode Title="RequestMarshaller Property " Url="html/P_Grpc_Core_Method_2_RequestMarshaller.htm" /><HelpTOCNode Title="ResponseMarshaller Property " Url="html/P_Grpc_Core_Method_2_ResponseMarshaller.htm" /><HelpTOCNode Title="ServiceName Property " Url="html/P_Grpc_Core_Method_2_ServiceName.htm" /><HelpTOCNode Title="Type Property " Url="html/P_Grpc_Core_Method_2_Type.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_RpcException.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_RpcException.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5c154e6deb9fe80a63a58c3a392e5179a521db41
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_RpcException.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="RpcException Properties" Url="html/Properties_T_Grpc_Core_RpcException.htm"><HelpTOCNode Title="Status Property " Url="html/P_Grpc_Core_RpcException_Status.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Server.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Server.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6088ffd72d0d7a68fccb2dca7fbe894fcd47d10a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Server.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Server Properties" Url="html/Properties_T_Grpc_Core_Server.htm"><HelpTOCNode Title="Ports Property " Url="html/P_Grpc_Core_Server_Ports.htm" /><HelpTOCNode Title="Services Property " Url="html/P_Grpc_Core_Server_Services.htm" /><HelpTOCNode Title="ShutdownTask Property " Url="html/P_Grpc_Core_Server_ShutdownTask.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerCallContext.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerCallContext.xml
new file mode 100644
index 0000000000000000000000000000000000000000..4c22ae168bbb108312ab0a95b7cebb5161a55ee9
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerCallContext.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerCallContext Properties" Url="html/Properties_T_Grpc_Core_ServerCallContext.htm"><HelpTOCNode Title="CancellationToken Property " Url="html/P_Grpc_Core_ServerCallContext_CancellationToken.htm" /><HelpTOCNode Title="Deadline Property " Url="html/P_Grpc_Core_ServerCallContext_Deadline.htm" /><HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_ServerCallContext_Host.htm" /><HelpTOCNode Title="Method Property " Url="html/P_Grpc_Core_ServerCallContext_Method.htm" /><HelpTOCNode Title="Peer Property " Url="html/P_Grpc_Core_ServerCallContext_Peer.htm" /><HelpTOCNode Title="RequestHeaders Property " Url="html/P_Grpc_Core_ServerCallContext_RequestHeaders.htm" /><HelpTOCNode Title="ResponseTrailers Property " Url="html/P_Grpc_Core_ServerCallContext_ResponseTrailers.htm" /><HelpTOCNode Title="Status Property " Url="html/P_Grpc_Core_ServerCallContext_Status.htm" /><HelpTOCNode Title="WriteOptions Property " Url="html/P_Grpc_Core_ServerCallContext_WriteOptions.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerCredentials.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerCredentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9fc1b103c19acaeca16daff967f20e06aa74cf33
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerCredentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerCredentials Properties" Url="html/Properties_T_Grpc_Core_ServerCredentials.htm"><HelpTOCNode Title="Insecure Property " Url="html/P_Grpc_Core_ServerCredentials_Insecure.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerPort.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerPort.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0613dc659a51c8c2c1023fd1f0eb18054a5c0914
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_ServerPort.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerPort Properties" Url="html/Properties_T_Grpc_Core_ServerPort.htm"><HelpTOCNode Title="BoundPort Property " Url="html/P_Grpc_Core_ServerPort_BoundPort.htm" /><HelpTOCNode Title="Credentials Property " Url="html/P_Grpc_Core_ServerPort_Credentials.htm" /><HelpTOCNode Title="Host Property " Url="html/P_Grpc_Core_ServerPort_Host.htm" /><HelpTOCNode Title="Port Property " Url="html/P_Grpc_Core_ServerPort_Port.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_SslCredentials.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_SslCredentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b789111c5af5179e6c4290240619add7ff00a9d3
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_SslCredentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="SslCredentials Properties" Url="html/Properties_T_Grpc_Core_SslCredentials.htm"><HelpTOCNode Title="KeyCertificatePair Property " Url="html/P_Grpc_Core_SslCredentials_KeyCertificatePair.htm" /><HelpTOCNode Title="RootCertificates Property " Url="html/P_Grpc_Core_SslCredentials_RootCertificates.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_SslServerCredentials.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_SslServerCredentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..35284d68fc99435715fef75aa23a2917aed35653
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_SslServerCredentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="SslServerCredentials Properties" Url="html/Properties_T_Grpc_Core_SslServerCredentials.htm"><HelpTOCNode Title="ForceClientAuthentication Property " Url="html/P_Grpc_Core_SslServerCredentials_ForceClientAuthentication.htm" /><HelpTOCNode Title="KeyCertificatePairs Property " Url="html/P_Grpc_Core_SslServerCredentials_KeyCertificatePairs.htm" /><HelpTOCNode Title="RootCertificates Property " Url="html/P_Grpc_Core_SslServerCredentials_RootCertificates.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Status.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Status.xml
new file mode 100644
index 0000000000000000000000000000000000000000..030c8d044ab763a1d5d2b0a944125fdcd1f06fbb
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_Status.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Status Properties" Url="html/Properties_T_Grpc_Core_Status.htm"><HelpTOCNode Title="Detail Property " Url="html/P_Grpc_Core_Status_Detail.htm" /><HelpTOCNode Title="StatusCode Property " Url="html/P_Grpc_Core_Status_StatusCode.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_WriteOptions.xml b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_WriteOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..922857669d4171527cc3acd742f961a85b206c3f
--- /dev/null
+++ b/doc/ref/csharp/html/toc/Properties_T_Grpc_Core_WriteOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="WriteOptions Properties" Url="html/Properties_T_Grpc_Core_WriteOptions.htm"><HelpTOCNode Title="Flags Property " Url="html/P_Grpc_Core_WriteOptions_Flags.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/R_Project_Documentation.xml b/doc/ref/csharp/html/toc/R_Project_Documentation.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e8895fc2f00fb6e2f3d374a396908385f9166f1e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/R_Project_Documentation.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Namespaces" Url="html/R_Project_Documentation.htm"><HelpTOCNode Title="Grpc.Auth" Url="html/N_Grpc_Auth.htm" HasChildren="true" /><HelpTOCNode Title="Grpc.Core" Url="html/N_Grpc_Core.htm" HasChildren="true" /><HelpTOCNode Title="Grpc.Core.Logging" Url="html/N_Grpc_Core_Logging.htm" HasChildren="true" /><HelpTOCNode Title="Grpc.Core.Utils" Url="html/N_Grpc_Core_Utils.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Auth_AuthInterceptors.xml b/doc/ref/csharp/html/toc/T_Grpc_Auth_AuthInterceptors.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2e934b724a847323e3b4884efd2d25a028866111
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Auth_AuthInterceptors.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AuthInterceptors Class" Url="html/T_Grpc_Auth_AuthInterceptors.htm"><HelpTOCNode Title="AuthInterceptors Methods" Url="html/Methods_T_Grpc_Auth_AuthInterceptors.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncClientStreamingCall_2.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncClientStreamingCall_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..19a77d8a7e17fdeabfc8a246ac1e00f8fe869f83
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncClientStreamingCall_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncClientStreamingCall_2.htm"><HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncClientStreamingCall_2.htm" HasChildren="true" /><HelpTOCNode Title="AsyncClientStreamingCall(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncClientStreamingCall_2.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncDuplexStreamingCall_2.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncDuplexStreamingCall_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7fc72158620e85be8c834383b68201afe90024ed
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncDuplexStreamingCall_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Class" Url="html/T_Grpc_Core_AsyncDuplexStreamingCall_2.htm"><HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" HasChildren="true" /><HelpTOCNode Title="AsyncDuplexStreamingCall(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncDuplexStreamingCall_2.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncServerStreamingCall_1.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncServerStreamingCall_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ef66bf5b868d31d1ad9b2e9ef6e4d512bc2dac33
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncServerStreamingCall_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncServerStreamingCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncServerStreamingCall_1.htm"><HelpTOCNode Title="AsyncServerStreamingCall(TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncServerStreamingCall_1.htm" HasChildren="true" /><HelpTOCNode Title="AsyncServerStreamingCall(TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncServerStreamingCall_1.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncUnaryCall_1.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncUnaryCall_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..23b4b52b7f232e64fe4d0e36455af9c69fdf7392
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_AsyncUnaryCall_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncUnaryCall(TResponse) Class" Url="html/T_Grpc_Core_AsyncUnaryCall_1.htm"><HelpTOCNode Title="AsyncUnaryCall(TResponse) Properties" Url="html/Properties_T_Grpc_Core_AsyncUnaryCall_1.htm" HasChildren="true" /><HelpTOCNode Title="AsyncUnaryCall(TResponse) Methods" Url="html/Methods_T_Grpc_Core_AsyncUnaryCall_1.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_CallInvocationDetails_2.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_CallInvocationDetails_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..58b3de4887cdc5519ca85b524e77c6f76dea3e45
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_CallInvocationDetails_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Structure" Url="html/T_Grpc_Core_CallInvocationDetails_2.htm"><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Constructor " Url="html/Overload_Grpc_Core_CallInvocationDetails_2__ctor.htm" HasChildren="true" /><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_CallInvocationDetails_2.htm" HasChildren="true" /><HelpTOCNode Title="CallInvocationDetails(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_CallInvocationDetails_2.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_CallOptions.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_CallOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..37363c4d4acba0390ffc2fd99eacb618e4191408
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_CallOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="CallOptions Structure" Url="html/T_Grpc_Core_CallOptions.htm"><HelpTOCNode Title="CallOptions Constructor " Url="html/M_Grpc_Core_CallOptions__ctor.htm" /><HelpTOCNode Title="CallOptions Properties" Url="html/Properties_T_Grpc_Core_CallOptions.htm" HasChildren="true" /><HelpTOCNode Title="CallOptions Methods" Url="html/Methods_T_Grpc_Core_CallOptions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Calls.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Calls.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a311abaf989dd9b2ef592637241f2c2d9480a8da
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Calls.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Calls Class" Url="html/T_Grpc_Core_Calls.htm"><HelpTOCNode Title="Calls Methods" Url="html/Methods_T_Grpc_Core_Calls.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Channel.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Channel.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6b1861dced2bbb0c81d932fb0ce3104736875747
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Channel.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Channel Class" Url="html/T_Grpc_Core_Channel.htm"><HelpTOCNode Title="Channel Constructor " Url="html/Overload_Grpc_Core_Channel__ctor.htm" HasChildren="true" /><HelpTOCNode Title="Channel Properties" Url="html/Properties_T_Grpc_Core_Channel.htm" HasChildren="true" /><HelpTOCNode Title="Channel Methods" Url="html/Methods_T_Grpc_Core_Channel.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ChannelOption.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ChannelOption.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5d862e65a0bf6cca94486987353f913e8243a675
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ChannelOption.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ChannelOption Class" Url="html/T_Grpc_Core_ChannelOption.htm"><HelpTOCNode Title="ChannelOption Constructor " Url="html/Overload_Grpc_Core_ChannelOption__ctor.htm" HasChildren="true" /><HelpTOCNode Title="ChannelOption Properties" Url="html/Properties_T_Grpc_Core_ChannelOption.htm" HasChildren="true" /><HelpTOCNode Title="ChannelOption Methods" Url="html/Methods_T_Grpc_Core_ChannelOption.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ChannelOptions.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ChannelOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..691797e6cf29199d44456ea8f4ca19dbe9c14a93
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ChannelOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ChannelOptions Class" Url="html/T_Grpc_Core_ChannelOptions.htm"><HelpTOCNode Title="ChannelOptions Fields" Url="html/Fields_T_Grpc_Core_ChannelOptions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ClientBase.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ClientBase.xml
new file mode 100644
index 0000000000000000000000000000000000000000..349238f4ca392bb37c4e96d51756f0eb807d7542
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ClientBase.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ClientBase Class" Url="html/T_Grpc_Core_ClientBase.htm"><HelpTOCNode Title="ClientBase Constructor " Url="html/M_Grpc_Core_ClientBase__ctor.htm" /><HelpTOCNode Title="ClientBase Properties" Url="html/Properties_T_Grpc_Core_ClientBase.htm" HasChildren="true" /><HelpTOCNode Title="ClientBase Methods" Url="html/Methods_T_Grpc_Core_ClientBase.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ContextPropagationOptions.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ContextPropagationOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..6405e3d2f27a6f938fa260de474f426a6831b118
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ContextPropagationOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ContextPropagationOptions Class" Url="html/T_Grpc_Core_ContextPropagationOptions.htm"><HelpTOCNode Title="ContextPropagationOptions Constructor " Url="html/M_Grpc_Core_ContextPropagationOptions__ctor.htm" /><HelpTOCNode Title="ContextPropagationOptions Properties" Url="html/Properties_T_Grpc_Core_ContextPropagationOptions.htm" HasChildren="true" /><HelpTOCNode Title="ContextPropagationOptions Methods" Url="html/Methods_T_Grpc_Core_ContextPropagationOptions.htm" /><HelpTOCNode Title="ContextPropagationOptions Fields" Url="html/Fields_T_Grpc_Core_ContextPropagationOptions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ContextPropagationToken.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ContextPropagationToken.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9425beff5f460bdce7e8549d64650a08a293e354
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ContextPropagationToken.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ContextPropagationToken Class" Url="html/T_Grpc_Core_ContextPropagationToken.htm"><HelpTOCNode Title="ContextPropagationToken Methods" Url="html/Methods_T_Grpc_Core_ContextPropagationToken.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Credentials.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Credentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bbac8193ba0b06c7c4db0dae5c7bdefa8a2250e4
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Credentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Credentials Class" Url="html/T_Grpc_Core_Credentials.htm"><HelpTOCNode Title="Credentials Constructor " Url="html/M_Grpc_Core_Credentials__ctor.htm" /><HelpTOCNode Title="Credentials Properties" Url="html/Properties_T_Grpc_Core_Credentials.htm" HasChildren="true" /><HelpTOCNode Title="Credentials Methods" Url="html/Methods_T_Grpc_Core_Credentials.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_GrpcEnvironment.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_GrpcEnvironment.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bbd474189bb08327ef248db2d5501be7b41915ea
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_GrpcEnvironment.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="GrpcEnvironment Class" Url="html/T_Grpc_Core_GrpcEnvironment.htm"><HelpTOCNode Title="GrpcEnvironment Properties" Url="html/Properties_T_Grpc_Core_GrpcEnvironment.htm" HasChildren="true" /><HelpTOCNode Title="GrpcEnvironment Methods" Url="html/Methods_T_Grpc_Core_GrpcEnvironment.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_IAsyncStreamReader_1.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_IAsyncStreamReader_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b055c910a613ae33451bcef49db3577f4a14591e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_IAsyncStreamReader_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IAsyncStreamReader(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamReader_1.htm"><HelpTOCNode Title="IAsyncStreamReader(T) Properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamReader_1.htm" /><HelpTOCNode Title="IAsyncStreamReader(T) Methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamReader_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_IAsyncStreamWriter_1.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_IAsyncStreamWriter_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..a9b94b5e9a71193fea86ce1a9450b842f26ce77a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_IAsyncStreamWriter_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IAsyncStreamWriter(T) Interface" Url="html/T_Grpc_Core_IAsyncStreamWriter_1.htm"><HelpTOCNode Title="IAsyncStreamWriter(T) Properties" Url="html/Properties_T_Grpc_Core_IAsyncStreamWriter_1.htm" HasChildren="true" /><HelpTOCNode Title="IAsyncStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IAsyncStreamWriter_1.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_IClientStreamWriter_1.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_IClientStreamWriter_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fda5e1d490b509f5529c2efcd805d5b64021a353
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_IClientStreamWriter_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IClientStreamWriter(T) Interface" Url="html/T_Grpc_Core_IClientStreamWriter_1.htm"><HelpTOCNode Title="IClientStreamWriter(T) Properties" Url="html/Properties_T_Grpc_Core_IClientStreamWriter_1.htm" /><HelpTOCNode Title="IClientStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IClientStreamWriter_1.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_IHasWriteOptions.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_IHasWriteOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b5cdd29aaa66c51f46bf5596c9323855963334e8
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_IHasWriteOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IHasWriteOptions Interface" Url="html/T_Grpc_Core_IHasWriteOptions.htm"><HelpTOCNode Title="IHasWriteOptions Properties" Url="html/Properties_T_Grpc_Core_IHasWriteOptions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_IMethod.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_IMethod.xml
new file mode 100644
index 0000000000000000000000000000000000000000..81f261604907b3b3333d5a2d362fdaea497dce3e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_IMethod.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IMethod Interface" Url="html/T_Grpc_Core_IMethod.htm"><HelpTOCNode Title="IMethod Properties" Url="html/Properties_T_Grpc_Core_IMethod.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_IServerStreamWriter_1.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_IServerStreamWriter_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ecd55220fdd5117d5c9eb70339c9de7b3fd33289
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_IServerStreamWriter_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="IServerStreamWriter(T) Interface" Url="html/T_Grpc_Core_IServerStreamWriter_1.htm"><HelpTOCNode Title="IServerStreamWriter(T) Properties" Url="html/Properties_T_Grpc_Core_IServerStreamWriter_1.htm" /><HelpTOCNode Title="IServerStreamWriter(T) Methods" Url="html/Methods_T_Grpc_Core_IServerStreamWriter_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_KeyCertificatePair.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_KeyCertificatePair.xml
new file mode 100644
index 0000000000000000000000000000000000000000..3bc56c00afdb829648a14fe33f4da2a5d9f4065c
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_KeyCertificatePair.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="KeyCertificatePair Class" Url="html/T_Grpc_Core_KeyCertificatePair.htm"><HelpTOCNode Title="KeyCertificatePair Constructor " Url="html/M_Grpc_Core_KeyCertificatePair__ctor.htm" /><HelpTOCNode Title="KeyCertificatePair Properties" Url="html/Properties_T_Grpc_Core_KeyCertificatePair.htm" HasChildren="true" /><HelpTOCNode Title="KeyCertificatePair Methods" Url="html/Methods_T_Grpc_Core_KeyCertificatePair.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Logging_ConsoleLogger.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Logging_ConsoleLogger.xml
new file mode 100644
index 0000000000000000000000000000000000000000..18b5fb4340138858d667e5820737b4fc2b10801a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Logging_ConsoleLogger.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ConsoleLogger Class" Url="html/T_Grpc_Core_Logging_ConsoleLogger.htm"><HelpTOCNode Title="ConsoleLogger Constructor " Url="html/M_Grpc_Core_Logging_ConsoleLogger__ctor.htm" /><HelpTOCNode Title="ConsoleLogger Methods" Url="html/Methods_T_Grpc_Core_Logging_ConsoleLogger.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Logging_ILogger.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Logging_ILogger.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f49a352d9923746953c0eaeab9987bfe0433ee12
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Logging_ILogger.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ILogger Interface" Url="html/T_Grpc_Core_Logging_ILogger.htm"><HelpTOCNode Title="ILogger Methods" Url="html/Methods_T_Grpc_Core_Logging_ILogger.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Marshaller_1.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Marshaller_1.xml
new file mode 100644
index 0000000000000000000000000000000000000000..7a41e05188e08fb4e2f93bdba91aa908f342cc3f
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Marshaller_1.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Marshaller(T) Structure" Url="html/T_Grpc_Core_Marshaller_1.htm"><HelpTOCNode Title="Marshaller(T) Constructor " Url="html/M_Grpc_Core_Marshaller_1__ctor.htm" /><HelpTOCNode Title="Marshaller(T) Properties" Url="html/Properties_T_Grpc_Core_Marshaller_1.htm" HasChildren="true" /><HelpTOCNode Title="Marshaller(T) Methods" Url="html/Methods_T_Grpc_Core_Marshaller_1.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Marshallers.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Marshallers.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e6cb53d987756803a36a7498d166875cda12e4b7
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Marshallers.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Marshallers Class" Url="html/T_Grpc_Core_Marshallers.htm"><HelpTOCNode Title="Marshallers Properties" Url="html/Properties_T_Grpc_Core_Marshallers.htm" HasChildren="true" /><HelpTOCNode Title="Marshallers Methods" Url="html/Methods_T_Grpc_Core_Marshallers.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Metadata.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Metadata.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c1fa355265eab82cd149ea8017a6469b765a5608
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Metadata.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Metadata Class" Url="html/T_Grpc_Core_Metadata.htm"><HelpTOCNode Title="Metadata Constructor " Url="html/M_Grpc_Core_Metadata__ctor.htm" /><HelpTOCNode Title="Metadata Properties" Url="html/Properties_T_Grpc_Core_Metadata.htm" HasChildren="true" /><HelpTOCNode Title="Metadata Methods" Url="html/Methods_T_Grpc_Core_Metadata.htm" HasChildren="true" /><HelpTOCNode Title="Metadata Fields" Url="html/Fields_T_Grpc_Core_Metadata.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Metadata_Entry.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Metadata_Entry.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e3b05189aa6f659c40d03303743fa9cd32cd48fb
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Metadata_Entry.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Metadata.Entry Structure" Url="html/T_Grpc_Core_Metadata_Entry.htm"><HelpTOCNode Title="Entry Constructor " Url="html/Overload_Grpc_Core_Metadata_Entry__ctor.htm" HasChildren="true" /><HelpTOCNode Title="Entry Properties" Url="html/Properties_T_Grpc_Core_Metadata_Entry.htm" HasChildren="true" /><HelpTOCNode Title="Entry Methods" Url="html/Methods_T_Grpc_Core_Metadata_Entry.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Method_2.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Method_2.xml
new file mode 100644
index 0000000000000000000000000000000000000000..2e4329d5ff7a143a83685c031e3e8c8ac8bfaffe
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Method_2.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Method(TRequest, TResponse) Class" Url="html/T_Grpc_Core_Method_2.htm"><HelpTOCNode Title="Method(TRequest, TResponse) Constructor " Url="html/M_Grpc_Core_Method_2__ctor.htm" /><HelpTOCNode Title="Method(TRequest, TResponse) Properties" Url="html/Properties_T_Grpc_Core_Method_2.htm" HasChildren="true" /><HelpTOCNode Title="Method(TRequest, TResponse) Methods" Url="html/Methods_T_Grpc_Core_Method_2.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_RpcException.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_RpcException.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d97a369043c42b47b71e6019aa6f14359157de5b
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_RpcException.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="RpcException Class" Url="html/T_Grpc_Core_RpcException.htm"><HelpTOCNode Title="RpcException Constructor " Url="html/Overload_Grpc_Core_RpcException__ctor.htm" HasChildren="true" /><HelpTOCNode Title="RpcException Properties" Url="html/Properties_T_Grpc_Core_RpcException.htm" HasChildren="true" /><HelpTOCNode Title="RpcException Methods" Url="html/Methods_T_Grpc_Core_RpcException.htm" /><HelpTOCNode Title="RpcException Events" Url="html/Events_T_Grpc_Core_RpcException.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Server.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Server.xml
new file mode 100644
index 0000000000000000000000000000000000000000..78e807def0f37e99161c8851cfa09acfd253964a
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Server.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Server Class" Url="html/T_Grpc_Core_Server.htm"><HelpTOCNode Title="Server Constructor " Url="html/M_Grpc_Core_Server__ctor.htm" /><HelpTOCNode Title="Server Properties" Url="html/Properties_T_Grpc_Core_Server.htm" HasChildren="true" /><HelpTOCNode Title="Server Methods" Url="html/Methods_T_Grpc_Core_Server.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ServerCallContext.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerCallContext.xml
new file mode 100644
index 0000000000000000000000000000000000000000..96856689c421d074bca02a7c98f80b89a182b03b
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerCallContext.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerCallContext Class" Url="html/T_Grpc_Core_ServerCallContext.htm"><HelpTOCNode Title="ServerCallContext Properties" Url="html/Properties_T_Grpc_Core_ServerCallContext.htm" HasChildren="true" /><HelpTOCNode Title="ServerCallContext Methods" Url="html/Methods_T_Grpc_Core_ServerCallContext.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ServerCredentials.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerCredentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..b7d878f586093fa9fd7ad99be02f46da8d796dbb
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerCredentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerCredentials Class" Url="html/T_Grpc_Core_ServerCredentials.htm"><HelpTOCNode Title="ServerCredentials Constructor " Url="html/M_Grpc_Core_ServerCredentials__ctor.htm" /><HelpTOCNode Title="ServerCredentials Properties" Url="html/Properties_T_Grpc_Core_ServerCredentials.htm" HasChildren="true" /><HelpTOCNode Title="ServerCredentials Methods" Url="html/Methods_T_Grpc_Core_ServerCredentials.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ServerPort.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerPort.xml
new file mode 100644
index 0000000000000000000000000000000000000000..63cd6b40933800ef2954a0d4f1623d24fb00f68e
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerPort.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerPort Class" Url="html/T_Grpc_Core_ServerPort.htm"><HelpTOCNode Title="ServerPort Constructor " Url="html/M_Grpc_Core_ServerPort__ctor.htm" /><HelpTOCNode Title="ServerPort Properties" Url="html/Properties_T_Grpc_Core_ServerPort.htm" HasChildren="true" /><HelpTOCNode Title="ServerPort Methods" Url="html/Methods_T_Grpc_Core_ServerPort.htm" /><HelpTOCNode Title="ServerPort Fields" Url="html/Fields_T_Grpc_Core_ServerPort.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ServerServiceDefinition.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerServiceDefinition.xml
new file mode 100644
index 0000000000000000000000000000000000000000..ec30762d3235e6800b95bb551b2ca8ddab5f864d
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerServiceDefinition.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerServiceDefinition Class" Url="html/T_Grpc_Core_ServerServiceDefinition.htm"><HelpTOCNode Title="ServerServiceDefinition Methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_ServerServiceDefinition_Builder.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerServiceDefinition_Builder.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0641ac30d9042f3a9aedc7149cf621310c4e26ff
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_ServerServiceDefinition_Builder.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="ServerServiceDefinition.Builder Class" Url="html/T_Grpc_Core_ServerServiceDefinition_Builder.htm"><HelpTOCNode Title="ServerServiceDefinition.Builder Constructor " Url="html/M_Grpc_Core_ServerServiceDefinition_Builder__ctor.htm" /><HelpTOCNode Title="Builder Methods" Url="html/Methods_T_Grpc_Core_ServerServiceDefinition_Builder.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Server_ServerPortCollection.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Server_ServerPortCollection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..9a704ffdf5a91580c2e426e842918a980d1f252f
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Server_ServerPortCollection.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Server.ServerPortCollection Class" Url="html/T_Grpc_Core_Server_ServerPortCollection.htm"><HelpTOCNode Title="ServerPortCollection Methods" Url="html/Methods_T_Grpc_Core_Server_ServerPortCollection.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Server_ServiceDefinitionCollection.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Server_ServiceDefinitionCollection.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e9d776840207b82daba1be88b7501b91b353755c
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Server_ServiceDefinitionCollection.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Server.ServiceDefinitionCollection Class" Url="html/T_Grpc_Core_Server_ServiceDefinitionCollection.htm"><HelpTOCNode Title="ServiceDefinitionCollection Methods" Url="html/Methods_T_Grpc_Core_Server_ServiceDefinitionCollection.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_SslCredentials.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_SslCredentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..bb0f2a98ab77cbbe67cb37ad54860579d1f1eed0
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_SslCredentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="SslCredentials Class" Url="html/T_Grpc_Core_SslCredentials.htm"><HelpTOCNode Title="SslCredentials Constructor " Url="html/Overload_Grpc_Core_SslCredentials__ctor.htm" HasChildren="true" /><HelpTOCNode Title="SslCredentials Properties" Url="html/Properties_T_Grpc_Core_SslCredentials.htm" HasChildren="true" /><HelpTOCNode Title="SslCredentials Methods" Url="html/Methods_T_Grpc_Core_SslCredentials.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_SslServerCredentials.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_SslServerCredentials.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fa3e0f842552b1b5e1fea117df3208fcb52da6a4
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_SslServerCredentials.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="SslServerCredentials Class" Url="html/T_Grpc_Core_SslServerCredentials.htm"><HelpTOCNode Title="SslServerCredentials Constructor " Url="html/Overload_Grpc_Core_SslServerCredentials__ctor.htm" HasChildren="true" /><HelpTOCNode Title="SslServerCredentials Properties" Url="html/Properties_T_Grpc_Core_SslServerCredentials.htm" HasChildren="true" /><HelpTOCNode Title="SslServerCredentials Methods" Url="html/Methods_T_Grpc_Core_SslServerCredentials.htm" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Status.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Status.xml
new file mode 100644
index 0000000000000000000000000000000000000000..d1bc2943a00f41fdb190108c46c7b94c1f96d045
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Status.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Status Structure" Url="html/T_Grpc_Core_Status.htm"><HelpTOCNode Title="Status Constructor " Url="html/M_Grpc_Core_Status__ctor.htm" /><HelpTOCNode Title="Status Properties" Url="html/Properties_T_Grpc_Core_Status.htm" HasChildren="true" /><HelpTOCNode Title="Status Methods" Url="html/Methods_T_Grpc_Core_Status.htm" HasChildren="true" /><HelpTOCNode Title="Status Fields" Url="html/Fields_T_Grpc_Core_Status.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_AsyncStreamExtensions.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_AsyncStreamExtensions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..c581425d37c8b5825c5eeaa4f5cd4753490a6259
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_AsyncStreamExtensions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="AsyncStreamExtensions Class" Url="html/T_Grpc_Core_Utils_AsyncStreamExtensions.htm"><HelpTOCNode Title="AsyncStreamExtensions Methods" Url="html/Methods_T_Grpc_Core_Utils_AsyncStreamExtensions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_BenchmarkUtil.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_BenchmarkUtil.xml
new file mode 100644
index 0000000000000000000000000000000000000000..cb5d367aa396120a14b5803c28a3bbe9389e48b3
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_BenchmarkUtil.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="BenchmarkUtil Class" Url="html/T_Grpc_Core_Utils_BenchmarkUtil.htm"><HelpTOCNode Title="BenchmarkUtil Methods" Url="html/Methods_T_Grpc_Core_Utils_BenchmarkUtil.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_Preconditions.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_Preconditions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..192b0257e21e109633e7a268fa05cbf9ffd397be
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_Utils_Preconditions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="Preconditions Class" Url="html/T_Grpc_Core_Utils_Preconditions.htm"><HelpTOCNode Title="Preconditions Methods" Url="html/Methods_T_Grpc_Core_Utils_Preconditions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_VersionInfo.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_VersionInfo.xml
new file mode 100644
index 0000000000000000000000000000000000000000..283cbbb83e17d6db900d6f506d2a45f95f65e273
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_VersionInfo.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="VersionInfo Class" Url="html/T_Grpc_Core_VersionInfo.htm"><HelpTOCNode Title="VersionInfo Fields" Url="html/Fields_T_Grpc_Core_VersionInfo.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/T_Grpc_Core_WriteOptions.xml b/doc/ref/csharp/html/toc/T_Grpc_Core_WriteOptions.xml
new file mode 100644
index 0000000000000000000000000000000000000000..5dcda42dc01483c280c4189441fc279d66d4173c
--- /dev/null
+++ b/doc/ref/csharp/html/toc/T_Grpc_Core_WriteOptions.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOCNode Title="WriteOptions Class" Url="html/T_Grpc_Core_WriteOptions.htm"><HelpTOCNode Title="WriteOptions Constructor " Url="html/M_Grpc_Core_WriteOptions__ctor.htm" /><HelpTOCNode Title="WriteOptions Properties" Url="html/Properties_T_Grpc_Core_WriteOptions.htm" HasChildren="true" /><HelpTOCNode Title="WriteOptions Methods" Url="html/Methods_T_Grpc_Core_WriteOptions.htm" /><HelpTOCNode Title="WriteOptions Fields" Url="html/Fields_T_Grpc_Core_WriteOptions.htm" HasChildren="true" /></HelpTOCNode>
\ No newline at end of file
diff --git a/doc/ref/csharp/html/toc/roottoc.xml b/doc/ref/csharp/html/toc/roottoc.xml
new file mode 100644
index 0000000000000000000000000000000000000000..e5d2703f77c3a6157225abf3717296111658e112
--- /dev/null
+++ b/doc/ref/csharp/html/toc/roottoc.xml
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="utf-8"?><HelpTOC><HelpTOCNode Title="Namespaces" Url="html/R_Project_Documentation.htm" HasChildren="true" /></HelpTOC>
\ No newline at end of file
diff --git a/examples/pubsub/main.cc b/examples/pubsub/main.cc
index b1898f18d9a102504ddf4e4a289b7f57bc264cfe..32102dcb5cd417e8a2fb4e25e4101c1ddfc9f5ab 100644
--- a/examples/pubsub/main.cc
+++ b/examples/pubsub/main.cc
@@ -37,18 +37,16 @@
 #include <string>
 #include <thread>
 
+#include <gflags/gflags.h>
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
-#include <gflags/gflags.h>
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/status.h>
-#include "test/cpp/util/test_config.h"
 
 #include "examples/pubsub/publisher.h"
 #include "examples/pubsub/subscriber.h"
+#include "test/cpp/util/test_config.h"
 
 DEFINE_int32(server_port, 443, "Server port.");
 DEFINE_string(server_host, "pubsub-staging.googleapis.com",
@@ -72,7 +70,7 @@ int main(int argc, char** argv) {
   ss << FLAGS_server_host << ":" << FLAGS_server_port;
 
   std::shared_ptr<grpc::Credentials> creds = grpc::GoogleDefaultCredentials();
-  std::shared_ptr<grpc::ChannelInterface> channel =
+  std::shared_ptr<grpc::Channel> channel =
       grpc::CreateChannel(ss.str(), creds, grpc::ChannelArguments());
 
   grpc::examples::pubsub::Publisher publisher(channel);
diff --git a/examples/pubsub/publisher.cc b/examples/pubsub/publisher.cc
index 458050af739f799f0a58a1c8d555aab31ffaa96a..fd38ca92ed93f277abda8c28436f148fa65bc545 100644
--- a/examples/pubsub/publisher.cc
+++ b/examples/pubsub/publisher.cc
@@ -50,7 +50,7 @@ namespace grpc {
 namespace examples {
 namespace pubsub {
 
-Publisher::Publisher(std::shared_ptr<ChannelInterface> channel)
+Publisher::Publisher(std::shared_ptr<Channel> channel)
     : stub_(PublisherService::NewStub(channel)) {}
 
 void Publisher::Shutdown() { stub_.reset(); }
diff --git a/examples/pubsub/publisher.h b/examples/pubsub/publisher.h
index 33bcf98df48a19937ed0c3e0e28dc5229abb14df..02e6194b0bde746bac5de724d771ea7f9ac3899e 100644
--- a/examples/pubsub/publisher.h
+++ b/examples/pubsub/publisher.h
@@ -34,8 +34,7 @@
 #ifndef GRPC_EXAMPLES_PUBSUB_PUBLISHER_H
 #define GRPC_EXAMPLES_PUBSUB_PUBLISHER_H
 
-#include <grpc++/channel_interface.h>
-#include <grpc++/status.h>
+#include <grpc++/channel.h>
 
 #include "examples/pubsub/pubsub.grpc.pb.h"
 
@@ -45,7 +44,7 @@ namespace pubsub {
 
 class Publisher {
  public:
-  Publisher(std::shared_ptr<ChannelInterface> channel);
+  Publisher(std::shared_ptr<Channel> channel);
   void Shutdown();
 
   Status CreateTopic(const grpc::string& topic);
diff --git a/examples/pubsub/publisher_test.cc b/examples/pubsub/publisher_test.cc
index 6b9dcacc499a8ee228cc8cae7019a2804c796535..c2eb295ef277acccbdc41757b4fb5b73054f190d 100644
--- a/examples/pubsub/publisher_test.cc
+++ b/examples/pubsub/publisher_test.cc
@@ -31,22 +31,20 @@
  *
  */
 
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
 #include <gtest/gtest.h>
 
 #include "examples/pubsub/publisher.h"
 #include "test/core/util/port.h"
 #include "test/core/util/test_config.h"
 
-using grpc::ChannelInterface;
+using grpc::Channel;
 
 namespace grpc {
 namespace testing {
@@ -124,7 +122,7 @@ class PublisherTest : public ::testing::Test {
   std::unique_ptr<Server> server_;
   PublisherServiceImpl service_;
 
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
 
   std::unique_ptr<grpc::examples::pubsub::Publisher> publisher_;
 };
diff --git a/examples/pubsub/subscriber.cc b/examples/pubsub/subscriber.cc
index d9e0292ba0ff94f4267eb4f789ad34a1f83ea12b..0818f501db8ab3da6e90e3552aa48061fccf1a55 100644
--- a/examples/pubsub/subscriber.cc
+++ b/examples/pubsub/subscriber.cc
@@ -48,7 +48,7 @@ namespace grpc {
 namespace examples {
 namespace pubsub {
 
-Subscriber::Subscriber(std::shared_ptr<ChannelInterface> channel)
+Subscriber::Subscriber(std::shared_ptr<Channel> channel)
     : stub_(SubscriberService::NewStub(channel)) {}
 
 void Subscriber::Shutdown() { stub_.reset(); }
diff --git a/examples/pubsub/subscriber.h b/examples/pubsub/subscriber.h
index 40ab45471d5e7ada2b115d869f993f121ea7dfa1..c5b1df0d3ec386df3a66776b3d2e4df909a51587 100644
--- a/examples/pubsub/subscriber.h
+++ b/examples/pubsub/subscriber.h
@@ -34,8 +34,7 @@
 #ifndef GRPC_EXAMPLES_PUBSUB_SUBSCRIBER_H
 #define GRPC_EXAMPLES_PUBSUB_SUBSCRIBER_H
 
-#include <grpc++/channel_interface.h>
-#include <grpc++/status.h>
+#include <grpc++/channel.h>
 
 #include "examples/pubsub/pubsub.grpc.pb.h"
 
@@ -45,7 +44,7 @@ namespace pubsub {
 
 class Subscriber {
  public:
-  Subscriber(std::shared_ptr<ChannelInterface> channel);
+  Subscriber(std::shared_ptr<Channel> channel);
   void Shutdown();
 
   Status CreateSubscription(const grpc::string& topic,
diff --git a/examples/pubsub/subscriber_test.cc b/examples/pubsub/subscriber_test.cc
index b0e7fc034b8e46d8a3db5e821c9ec0cc9519a632..c5a077f407ceb8855a13ab04d87d4acf8bbcebdb 100644
--- a/examples/pubsub/subscriber_test.cc
+++ b/examples/pubsub/subscriber_test.cc
@@ -31,15 +31,13 @@
  *
  */
 
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
 #include <gtest/gtest.h>
 
 #include "examples/pubsub/subscriber.h"
@@ -122,7 +120,7 @@ class SubscriberTest : public ::testing::Test {
   std::unique_ptr<Server> server_;
   SubscriberServiceImpl service_;
 
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
 
   std::unique_ptr<grpc::examples::pubsub::Subscriber> subscriber_;
 };
diff --git a/gRPC.podspec b/gRPC.podspec
index d945c299b512012a8688cddee10a0c2f4a14ce93..f6d09dbaa6214344ac8ee071c0b76cc1f4782175 100644
--- a/gRPC.podspec
+++ b/gRPC.podspec
@@ -145,7 +145,7 @@ Pod::Spec.new do |s|
                       'src/core/tsi/ssl_transport_security.h',
                       'src/core/tsi/transport_security.h',
                       'src/core/tsi/transport_security_interface.h',
-                      'src/core/channel/census_filter.h',
+                      'src/core/census/grpc_filter.h',
                       'src/core/channel/channel_args.h',
                       'src/core/channel/channel_stack.h',
                       'src/core/channel/client_channel.h',
@@ -211,6 +211,8 @@ Pod::Spec.new do |s|
                       'src/core/json/json_writer.h',
                       'src/core/profiling/timers.h',
                       'src/core/profiling/timers_preciseclock.h',
+                      'src/core/statistics/census_interface.h',
+                      'src/core/statistics/census_rpc_stats.h',
                       'src/core/surface/byte_buffer_queue.h',
                       'src/core/surface/call.h',
                       'src/core/surface/channel.h',
@@ -276,6 +278,7 @@ Pod::Spec.new do |s|
                       'src/core/tsi/ssl_transport_security.c',
                       'src/core/tsi/transport_security.c',
                       'src/core/census/grpc_context.c',
+                      'src/core/census/grpc_filter.c',
                       'src/core/channel/channel_args.c',
                       'src/core/channel/channel_stack.c',
                       'src/core/channel/client_channel.c',
@@ -414,7 +417,7 @@ Pod::Spec.new do |s|
                               'src/core/tsi/ssl_transport_security.h',
                               'src/core/tsi/transport_security.h',
                               'src/core/tsi/transport_security_interface.h',
-                              'src/core/channel/census_filter.h',
+                              'src/core/census/grpc_filter.h',
                               'src/core/channel/channel_args.h',
                               'src/core/channel/channel_stack.h',
                               'src/core/channel/client_channel.h',
@@ -480,6 +483,8 @@ Pod::Spec.new do |s|
                               'src/core/json/json_writer.h',
                               'src/core/profiling/timers.h',
                               'src/core/profiling/timers_preciseclock.h',
+                              'src/core/statistics/census_interface.h',
+                              'src/core/statistics/census_rpc_stats.h',
                               'src/core/surface/byte_buffer_queue.h',
                               'src/core/surface/call.h',
                               'src/core/surface/channel.h',
diff --git a/include/grpc++/channel_interface.h b/include/grpc++/channel.h
similarity index 52%
rename from include/grpc++/channel_interface.h
rename to include/grpc++/channel.h
index 4176cded7b6baf7448e9ca6a857eba88c7905368..a8af74175b4de818591d3e83ae3261838425ca22 100644
--- a/include/grpc++/channel_interface.h
+++ b/include/grpc++/channel.h
@@ -31,36 +31,49 @@
  *
  */
 
-#ifndef GRPCXX_CHANNEL_INTERFACE_H
-#define GRPCXX_CHANNEL_INTERFACE_H
+#ifndef GRPCXX_CHANNEL_H
+#define GRPCXX_CHANNEL_H
 
 #include <memory>
 
 #include <grpc/grpc.h>
-#include <grpc++/status.h>
 #include <grpc++/impl/call.h>
+#include <grpc++/impl/grpc_library.h>
+#include <grpc++/support/config.h>
 
-struct grpc_call;
+struct grpc_channel;
 
 namespace grpc {
-class Call;
-class CallOpBuffer;
-class ClientContext;
+class CallOpSetInterface;
+class ChannelArguments;
 class CompletionQueue;
-class RpcMethod;
+class Credentials;
+class SecureCredentials;
 
-class ChannelInterface : public CallHook,
-                         public std::enable_shared_from_this<ChannelInterface> {
- public:
-  virtual ~ChannelInterface() {}
+template <class R>
+class ClientReader;
+template <class W>
+class ClientWriter;
+template <class R, class W>
+class ClientReaderWriter;
+template <class R>
+class ClientAsyncReader;
+template <class W>
+class ClientAsyncWriter;
+template <class R, class W>
+class ClientAsyncReaderWriter;
+template <class R>
+class ClientAsyncResponseReader;
 
-  virtual void* RegisterMethod(const char* method_name) = 0;
-  virtual Call CreateCall(const RpcMethod& method, ClientContext* context,
-                          CompletionQueue* cq) = 0;
+class Channel GRPC_FINAL : public GrpcLibrary,
+                           public CallHook,
+                           public std::enable_shared_from_this<Channel> {
+ public:
+  ~Channel();
 
   // Get the current channel state. If the channel is in IDLE and try_to_connect
   // is set to true, try to connect.
-  virtual grpc_connectivity_state GetState(bool try_to_connect) = 0;
+  grpc_connectivity_state GetState(bool try_to_connect);
 
   // Return the tag on cq when the channel state is changed or deadline expires.
   // GetState needs to called to get the current state.
@@ -80,13 +93,46 @@ class ChannelInterface : public CallHook,
   }
 
  private:
-  virtual void NotifyOnStateChangeImpl(grpc_connectivity_state last_observed,
-                                       gpr_timespec deadline,
-                                       CompletionQueue* cq, void* tag) = 0;
-  virtual bool WaitForStateChangeImpl(grpc_connectivity_state last_observed,
-                                      gpr_timespec deadline) = 0;
+  template <class R>
+  friend class ::grpc::ClientReader;
+  template <class W>
+  friend class ::grpc::ClientWriter;
+  template <class R, class W>
+  friend class ::grpc::ClientReaderWriter;
+  template <class R>
+  friend class ::grpc::ClientAsyncReader;
+  template <class W>
+  friend class ::grpc::ClientAsyncWriter;
+  template <class R, class W>
+  friend class ::grpc::ClientAsyncReaderWriter;
+  template <class R>
+  friend class ::grpc::ClientAsyncResponseReader;
+  template <class InputMessage, class OutputMessage>
+  friend Status BlockingUnaryCall(Channel* channel, const RpcMethod& method,
+                                  ClientContext* context,
+                                  const InputMessage& request,
+                                  OutputMessage* result);
+  friend class ::grpc::RpcMethod;
+  friend std::shared_ptr<Channel> CreateChannelInternal(
+      const grpc::string& host, grpc_channel* c_channel);
+
+  Channel(const grpc::string& host, grpc_channel* c_channel);
+
+  Call CreateCall(const RpcMethod& method, ClientContext* context,
+                  CompletionQueue* cq);
+  void PerformOpsOnCall(CallOpSetInterface* ops, Call* call);
+  void* RegisterMethod(const char* method);
+
+  void NotifyOnStateChangeImpl(grpc_connectivity_state last_observed,
+                               gpr_timespec deadline, CompletionQueue* cq,
+                               void* tag);
+  bool WaitForStateChangeImpl(grpc_connectivity_state last_observed,
+                              gpr_timespec deadline);
+
+  const grpc::string host_;
+  grpc_channel* const c_channel_;  // owned
 };
 
 }  // namespace grpc
 
-#endif  // GRPCXX_CHANNEL_INTERFACE_H
+#endif  // GRPCXX_CHANNEL_H
diff --git a/include/grpc++/client_context.h b/include/grpc++/client_context.h
index d7fafac9b36dd8c411956c5c56431e7168c30c68..ee28f360cbeaa911fde56ec160b5a33e5c818d6b 100644
--- a/include/grpc++/client_context.h
+++ b/include/grpc++/client_context.h
@@ -42,16 +42,16 @@
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/time.h>
-#include <grpc++/auth_context.h>
-#include <grpc++/config.h>
-#include <grpc++/status.h>
-#include <grpc++/time.h>
+#include <grpc++/support/auth_context.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status.h>
+#include <grpc++/support/time.h>
 
 struct census_context;
 
 namespace grpc {
 
-class ChannelInterface;
+class Channel;
 class CompletionQueue;
 class Credentials;
 class RpcMethod;
@@ -121,6 +121,10 @@ class PropagationOptions {
   gpr_uint32 propagate_;
 };
 
+namespace testing {
+class InteropClientContextInspector;
+}  // namespace testing
+
 class ClientContext {
  public:
   ClientContext();
@@ -181,7 +185,9 @@ class ClientContext {
 
   // Get and set census context
   void set_census_context(struct census_context* ccp) { census_context_ = ccp; }
-  struct census_context* census_context() const { return census_context_; }
+  struct census_context* census_context() const {
+    return census_context_;
+  }
 
   void TryCancel();
 
@@ -190,6 +196,7 @@ class ClientContext {
   ClientContext(const ClientContext&);
   ClientContext& operator=(const ClientContext&);
 
+  friend class ::grpc::testing::InteropClientContextInspector;
   friend class CallOpClientRecvStatus;
   friend class CallOpRecvInitialMetadata;
   friend class Channel;
@@ -208,20 +215,18 @@ class ClientContext {
   template <class R>
   friend class ::grpc::ClientAsyncResponseReader;
   template <class InputMessage, class OutputMessage>
-  friend Status BlockingUnaryCall(ChannelInterface* channel,
-                                  const RpcMethod& method,
+  friend Status BlockingUnaryCall(Channel* channel, const RpcMethod& method,
                                   ClientContext* context,
                                   const InputMessage& request,
                                   OutputMessage* result);
 
   grpc_call* call() { return call_; }
-  void set_call(grpc_call* call,
-                const std::shared_ptr<ChannelInterface>& channel);
+  void set_call(grpc_call* call, const std::shared_ptr<Channel>& channel);
 
   grpc::string authority() { return authority_; }
 
   bool initial_metadata_received_;
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
   grpc_call* call_;
   gpr_timespec deadline_;
   grpc::string authority_;
diff --git a/include/grpc++/completion_queue.h b/include/grpc++/completion_queue.h
index 2f3021114570bace69df75bf5b8b27b5d4e4048f..d81d2e735d2a05db7a2b3621e4daad499385cf1d 100644
--- a/include/grpc++/completion_queue.h
+++ b/include/grpc++/completion_queue.h
@@ -36,8 +36,8 @@
 
 #include <grpc/support/time.h>
 #include <grpc++/impl/grpc_library.h>
-#include <grpc++/status.h>
-#include <grpc++/time.h>
+#include <grpc++/support/status.h>
+#include <grpc++/support/time.h>
 
 struct grpc_completion_queue;
 
@@ -65,7 +65,7 @@ template <class ServiceType, class RequestType, class ResponseType>
 class BidiStreamingHandler;
 class UnknownMethodHandler;
 
-class ChannelInterface;
+class Channel;
 class ClientContext;
 class CompletionQueue;
 class RpcMethod;
@@ -143,8 +143,7 @@ class CompletionQueue : public GrpcLibrary {
   friend class ::grpc::Server;
   friend class ::grpc::ServerContext;
   template <class InputMessage, class OutputMessage>
-  friend Status BlockingUnaryCall(ChannelInterface* channel,
-                                  const RpcMethod& method,
+  friend Status BlockingUnaryCall(Channel* channel, const RpcMethod& method,
                                   ClientContext* context,
                                   const InputMessage& request,
                                   OutputMessage* result);
diff --git a/include/grpc++/create_channel.h b/include/grpc++/create_channel.h
index 424a93a64c5939be47cdfb73437342fdbdadfcf4..0e559ac53e45e14e925968862ed62f8dc11ad08d 100644
--- a/include/grpc++/create_channel.h
+++ b/include/grpc++/create_channel.h
@@ -36,15 +36,14 @@
 
 #include <memory>
 
-#include <grpc++/config.h>
 #include <grpc++/credentials.h>
+#include <grpc++/support/channel_arguments.h>
+#include <grpc++/support/config.h>
 
 namespace grpc {
-class ChannelArguments;
-class ChannelInterface;
 
 // If creds does not hold an object or is invalid, a lame channel is returned.
-std::shared_ptr<ChannelInterface> CreateChannel(
+std::shared_ptr<Channel> CreateChannel(
     const grpc::string& target, const std::shared_ptr<Credentials>& creds,
     const ChannelArguments& args);
 
diff --git a/include/grpc++/credentials.h b/include/grpc++/credentials.h
index a4f1e7311851857c5f04c29ee9be61fac1a59920..71e1f00f15ababb88ee25ea803350841b8d66711 100644
--- a/include/grpc++/credentials.h
+++ b/include/grpc++/credentials.h
@@ -36,12 +36,12 @@
 
 #include <memory>
 
-#include <grpc++/config.h>
 #include <grpc++/impl/grpc_library.h>
+#include <grpc++/support/config.h>
 
 namespace grpc {
 class ChannelArguments;
-class ChannelInterface;
+class Channel;
 class SecureCredentials;
 
 class Credentials : public GrpcLibrary {
@@ -57,11 +57,11 @@ class Credentials : public GrpcLibrary {
   virtual SecureCredentials* AsSecureCredentials() = 0;
 
  private:
-  friend std::shared_ptr<ChannelInterface> CreateChannel(
+  friend std::shared_ptr<Channel> CreateChannel(
       const grpc::string& target, const std::shared_ptr<Credentials>& creds,
       const ChannelArguments& args);
 
-  virtual std::shared_ptr<ChannelInterface> CreateChannel(
+  virtual std::shared_ptr<Channel> CreateChannel(
       const grpc::string& target, const ChannelArguments& args) = 0;
 };
 
diff --git a/include/grpc++/async_generic_service.h b/include/grpc++/generic/async_generic_service.h
similarity index 91%
rename from include/grpc++/async_generic_service.h
rename to include/grpc++/generic/async_generic_service.h
index b435c6e73d23d92adbe2bde64e085712451fefdd..8578d850ffd75aef0f97d0f671c911a27fc5fed1 100644
--- a/include/grpc++/async_generic_service.h
+++ b/include/grpc++/generic/async_generic_service.h
@@ -31,11 +31,11 @@
  *
  */
 
-#ifndef GRPCXX_ASYNC_GENERIC_SERVICE_H
-#define GRPCXX_ASYNC_GENERIC_SERVICE_H
+#ifndef GRPCXX_GENERIC_ASYNC_GENERIC_SERVICE_H
+#define GRPCXX_GENERIC_ASYNC_GENERIC_SERVICE_H
 
-#include <grpc++/byte_buffer.h>
-#include <grpc++/stream.h>
+#include <grpc++/support/byte_buffer.h>
+#include <grpc++/support/async_stream.h>
 
 struct grpc_server;
 
@@ -75,4 +75,4 @@ class AsyncGenericService GRPC_FINAL {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_ASYNC_GENERIC_SERVICE_H
+#endif  // GRPCXX_GENERIC_ASYNC_GENERIC_SERVICE_H
diff --git a/include/grpc++/generic_stub.h b/include/grpc++/generic/generic_stub.h
similarity index 82%
rename from include/grpc++/generic_stub.h
rename to include/grpc++/generic/generic_stub.h
index c34e1fcf55fc1966a1871fcff7b5a3b070cdca05..1bb7900b0684fc5d4f6c96ecf5c96598d87b5ac1 100644
--- a/include/grpc++/generic_stub.h
+++ b/include/grpc++/generic/generic_stub.h
@@ -31,11 +31,11 @@
  *
  */
 
-#ifndef GRPCXX_GENERIC_STUB_H
-#define GRPCXX_GENERIC_STUB_H
+#ifndef GRPCXX_GENERIC_GENERIC_STUB_H
+#define GRPCXX_GENERIC_GENERIC_STUB_H
 
-#include <grpc++/byte_buffer.h>
-#include <grpc++/stream.h>
+#include <grpc++/support/async_stream.h>
+#include <grpc++/support/byte_buffer.h>
 
 namespace grpc {
 
@@ -47,18 +47,17 @@ typedef ClientAsyncReaderWriter<ByteBuffer, ByteBuffer>
 // by name.
 class GenericStub GRPC_FINAL {
  public:
-  explicit GenericStub(std::shared_ptr<ChannelInterface> channel)
-      : channel_(channel) {}
+  explicit GenericStub(std::shared_ptr<Channel> channel) : channel_(channel) {}
 
   // begin a call to a named method
   std::unique_ptr<GenericClientAsyncReaderWriter> Call(
-      ClientContext* context, const grpc::string& method,
-      CompletionQueue* cq, void* tag);
+      ClientContext* context, const grpc::string& method, CompletionQueue* cq,
+      void* tag);
 
  private:
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
 };
 
 }  // namespace grpc
 
-#endif  // GRPCXX_GENERIC_STUB_H
+#endif  // GRPCXX_GENERIC_GENERIC_STUB_H
diff --git a/include/grpc++/impl/README.md b/include/grpc++/impl/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..612150caa04cdd88de76af3bd27c302f7358765f
--- /dev/null
+++ b/include/grpc++/impl/README.md
@@ -0,0 +1,4 @@
+**The APIs in this directory are not stable!**
+
+This directory contains header files that need to be installed but are not part
+of the public API. Users should not use these headers directly.
diff --git a/include/grpc++/impl/call.h b/include/grpc++/impl/call.h
index d49102fa3e7a05e503bc3f0b7b0e120c1dbb9adc..e5da6c9e2afa8aa410a3519048a98beadcd51edd 100644
--- a/include/grpc++/impl/call.h
+++ b/include/grpc++/impl/call.h
@@ -34,18 +34,17 @@
 #ifndef GRPCXX_IMPL_CALL_H
 #define GRPCXX_IMPL_CALL_H
 
-#include <grpc/support/alloc.h>
-#include <grpc++/client_context.h>
-#include <grpc++/completion_queue.h>
-#include <grpc++/config.h>
-#include <grpc++/status.h>
-#include <grpc++/impl/serialization_traits.h>
-
 #include <functional>
 #include <memory>
 #include <map>
+#include <cstring>
 
-#include <string.h>
+#include <grpc/support/alloc.h>
+#include <grpc++/client_context.h>
+#include <grpc++/completion_queue.h>
+#include <grpc++/impl/serialization_traits.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status.h>
 
 struct grpc_call;
 struct grpc_op;
@@ -67,14 +66,10 @@ class WriteOptions {
   WriteOptions(const WriteOptions& other) : flags_(other.flags_) {}
 
   /// Clear all flags.
-  inline void Clear() {
-    flags_ = 0;
-  }
+  inline void Clear() { flags_ = 0; }
 
   /// Returns raw flags bitset.
-  inline gpr_uint32 flags() const {
-    return flags_;
-  }
+  inline gpr_uint32 flags() const { return flags_; }
 
   /// Sets flag for the disabling of compression for the next message write.
   ///
@@ -122,9 +117,7 @@ class WriteOptions {
   /// not go out on the wire immediately.
   ///
   /// \sa GRPC_WRITE_BUFFER_HINT
-  inline bool get_buffer_hint() const {
-    return GetBit(GRPC_WRITE_BUFFER_HINT);
-  }
+  inline bool get_buffer_hint() const { return GetBit(GRPC_WRITE_BUFFER_HINT); }
 
   WriteOptions& operator=(const WriteOptions& rhs) {
     flags_ = rhs.flags_;
@@ -132,17 +125,11 @@ class WriteOptions {
   }
 
  private:
-  void SetBit(const gpr_int32 mask) {
-    flags_ |= mask;
-  }
+  void SetBit(const gpr_int32 mask) { flags_ |= mask; }
 
-  void ClearBit(const gpr_int32 mask) {
-    flags_ &= ~mask;
-  }
+  void ClearBit(const gpr_int32 mask) { flags_ &= ~mask; }
 
-  bool GetBit(const gpr_int32 mask) const {
-    return flags_ & mask;
-  }
+  bool GetBit(const gpr_int32 mask) const { return flags_ & mask; }
 
   gpr_uint32 flags_;
 };
@@ -553,8 +540,7 @@ class CallOpSet : public CallOpSetInterface,
 template <class Op1 = CallNoOp<1>, class Op2 = CallNoOp<2>,
           class Op3 = CallNoOp<3>, class Op4 = CallNoOp<4>,
           class Op5 = CallNoOp<5>, class Op6 = CallNoOp<6>>
-class SneakyCallOpSet GRPC_FINAL
-    : public CallOpSet<Op1, Op2, Op3, Op4, Op5, Op6> {
+class SneakyCallOpSet : public CallOpSet<Op1, Op2, Op3, Op4, Op5, Op6> {
  public:
   bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE {
     typedef CallOpSet<Op1, Op2, Op3, Op4, Op5, Op6> Base;
diff --git a/include/grpc++/impl/client_unary_call.h b/include/grpc++/impl/client_unary_call.h
index b77ce7d02cde3382260321360501e501bdc87b2c..4cdc800267aea0db2a912bafff0a951459066ed4 100644
--- a/include/grpc++/impl/client_unary_call.h
+++ b/include/grpc++/impl/client_unary_call.h
@@ -34,21 +34,20 @@
 #ifndef GRPCXX_IMPL_CLIENT_UNARY_CALL_H
 #define GRPCXX_IMPL_CLIENT_UNARY_CALL_H
 
-#include <grpc++/config.h>
-#include <grpc++/status.h>
-
 #include <grpc++/impl/call.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status.h>
 
 namespace grpc {
 
-class ChannelInterface;
+class Channel;
 class ClientContext;
 class CompletionQueue;
 class RpcMethod;
 
 // Wrapper that performs a blocking unary call
 template <class InputMessage, class OutputMessage>
-Status BlockingUnaryCall(ChannelInterface* channel, const RpcMethod& method,
+Status BlockingUnaryCall(Channel* channel, const RpcMethod& method,
                          ClientContext* context, const InputMessage& request,
                          OutputMessage* result) {
   CompletionQueue cq;
diff --git a/include/grpc++/impl/grpc_library.h b/include/grpc++/impl/grpc_library.h
index f9fa677901b799cca3f39bce162e9d18625f646b..ce4211418dda6ee670ae80c42287a2712a7c3dab 100644
--- a/include/grpc++/impl/grpc_library.h
+++ b/include/grpc++/impl/grpc_library.h
@@ -46,5 +46,4 @@ class GrpcLibrary {
 
 }  // namespace grpc
 
-
 #endif  // GRPCXX_IMPL_GRPC_LIBRARY_H
diff --git a/include/grpc++/impl/proto_utils.h b/include/grpc++/impl/proto_utils.h
index ebefa3e1bec6244692e33a18ec8843cbe23dba20..283e33486df474472e36fb98b99ce0d7f50555d6 100644
--- a/include/grpc++/impl/proto_utils.h
+++ b/include/grpc++/impl/proto_utils.h
@@ -38,8 +38,8 @@
 
 #include <grpc/grpc.h>
 #include <grpc++/impl/serialization_traits.h>
-#include <grpc++/config_protobuf.h>
-#include <grpc++/status.h>
+#include <grpc++/support/config_protobuf.h>
+#include <grpc++/support/status.h>
 
 namespace grpc {
 
diff --git a/include/grpc++/impl/rpc_method.h b/include/grpc++/impl/rpc_method.h
index 50a160b08c7be6941fe7dc9dec7aa3638864ba8d..9800268062626690fdc98c5ff3a9c2592b0dc2d0 100644
--- a/include/grpc++/impl/rpc_method.h
+++ b/include/grpc++/impl/rpc_method.h
@@ -34,6 +34,10 @@
 #ifndef GRPCXX_IMPL_RPC_METHOD_H
 #define GRPCXX_IMPL_RPC_METHOD_H
 
+#include <memory>
+
+#include <grpc++/channel.h>
+
 namespace grpc {
 
 class RpcMethod {
@@ -45,8 +49,14 @@ class RpcMethod {
     BIDI_STREAMING
   };
 
-  RpcMethod(const char* name, RpcType type, void* channel_tag)
-      : name_(name), method_type_(type), channel_tag_(channel_tag) {}
+  RpcMethod(const char* name, RpcType type)
+      : name_(name), method_type_(type), channel_tag_(NULL) {}
+
+  RpcMethod(const char* name, RpcType type,
+            const std::shared_ptr<Channel>& channel)
+      : name_(name),
+        method_type_(type),
+        channel_tag_(channel->RegisterMethod(name)) {}
 
   const char* name() const { return name_; }
   RpcType method_type() const { return method_type_; }
diff --git a/include/grpc++/impl/rpc_service_method.h b/include/grpc++/impl/rpc_service_method.h
index 925801e1ceea8884f2632dcf858205e0b5866d59..fcb0b7ccce67b27f4923bcf1124be066c7128a86 100644
--- a/include/grpc++/impl/rpc_service_method.h
+++ b/include/grpc++/impl/rpc_service_method.h
@@ -39,10 +39,10 @@
 #include <memory>
 #include <vector>
 
-#include <grpc++/config.h>
 #include <grpc++/impl/rpc_method.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status.h>
+#include <grpc++/support/sync_stream.h>
 
 namespace grpc {
 class ServerContext;
@@ -211,13 +211,19 @@ class BidiStreamingHandler : public MethodHandler {
 // Handle unknown method by returning UNIMPLEMENTED error.
 class UnknownMethodHandler : public MethodHandler {
  public:
-  void RunHandler(const HandlerParameter& param) GRPC_FINAL {
+  template <class T>
+  static void FillOps(ServerContext* context, T* ops) {
     Status status(StatusCode::UNIMPLEMENTED, "");
-    CallOpSet<CallOpSendInitialMetadata, CallOpServerSendStatus> ops;
-    if (!param.server_context->sent_initial_metadata_) {
-      ops.SendInitialMetadata(param.server_context->initial_metadata_);
+    if (!context->sent_initial_metadata_) {
+      ops->SendInitialMetadata(context->initial_metadata_);
+      context->sent_initial_metadata_ = true;
     }
-    ops.ServerSendStatus(param.server_context->trailing_metadata_, status);
+    ops->ServerSendStatus(context->trailing_metadata_, status);
+  }
+
+  void RunHandler(const HandlerParameter& param) GRPC_FINAL {
+    CallOpSet<CallOpSendInitialMetadata, CallOpServerSendStatus> ops;
+    FillOps(param.server_context, &ops);
     param.call->PerformOps(&ops);
     param.call->cq()->Pluck(&ops);
   }
@@ -229,7 +235,7 @@ class RpcServiceMethod : public RpcMethod {
   // Takes ownership of the handler
   RpcServiceMethod(const char* name, RpcMethod::RpcType type,
                    MethodHandler* handler)
-      : RpcMethod(name, type, nullptr), handler_(handler) {}
+      : RpcMethod(name, type), handler_(handler) {}
 
   MethodHandler* handler() { return handler_.get(); }
 
diff --git a/include/grpc++/impl/serialization_traits.h b/include/grpc++/impl/serialization_traits.h
index 1f5c674e4ca1839db5b78a6722b05ec76150e010..3ea66a34054a0ccb0f1c1f967b074a2debc41e77 100644
--- a/include/grpc++/impl/serialization_traits.h
+++ b/include/grpc++/impl/serialization_traits.h
@@ -37,12 +37,12 @@
 namespace grpc {
 
 /// Defines how to serialize and deserialize some type.
-/// 
+///
 /// Used for hooking different message serialization API's into GRPC.
 /// Each SerializationTraits implementation must provide the following
 /// functions:
 ///   static Status Serialize(const Message& msg,
-///                           grpc_byte_buffer** buffer, 
+///                           grpc_byte_buffer** buffer,
 //                            bool* own_buffer);
 ///   static Status Deserialize(grpc_byte_buffer* buffer,
 ///                             Message* msg,
@@ -57,7 +57,7 @@ namespace grpc {
 /// msg. max_message_size is passed in as a bound on the maximum number of
 /// message bytes Deserialize should accept.
 ///
-/// Both functions return a Status, allowing them to explain what went 
+/// Both functions return a Status, allowing them to explain what went
 /// wrong if required.
 template <class Message,
           class UnusedButHereForPartialTemplateSpecialization = void>
diff --git a/include/grpc++/impl/service_type.h b/include/grpc++/impl/service_type.h
index c33a278f5bad89fb61d6ab806fed1695cc434a46..3b6ac1de771f73c0de8fe99afbc9c61c44e542ae 100644
--- a/include/grpc++/impl/service_type.h
+++ b/include/grpc++/impl/service_type.h
@@ -34,10 +34,10 @@
 #ifndef GRPCXX_IMPL_SERVICE_TYPE_H
 #define GRPCXX_IMPL_SERVICE_TYPE_H
 
-#include <grpc++/config.h>
 #include <grpc++/impl/serialization_traits.h>
 #include <grpc++/server.h>
-#include <grpc++/status.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status.h>
 
 namespace grpc {
 
diff --git a/include/grpc++/impl/sync.h b/include/grpc++/impl/sync.h
index 2f41d2bdebb8b73c0fa3137ceaf650370393bead..999c4303cbe127dbfa5c7706020f87b82cb7ddab 100644
--- a/include/grpc++/impl/sync.h
+++ b/include/grpc++/impl/sync.h
@@ -34,7 +34,7 @@
 #ifndef GRPCXX_IMPL_SYNC_H
 #define GRPCXX_IMPL_SYNC_H
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 #ifdef GRPC_CXX0X_NO_THREAD
 #include <grpc++/impl/sync_no_cxx11.h>
diff --git a/include/grpc++/impl/sync_no_cxx11.h b/include/grpc++/impl/sync_no_cxx11.h
index 5869b04c765eb3554bdb68e7568837b3dee4ff0b..120a031045281adb8e5401a367d81095c8c8c6cd 100644
--- a/include/grpc++/impl/sync_no_cxx11.h
+++ b/include/grpc++/impl/sync_no_cxx11.h
@@ -38,7 +38,7 @@
 
 namespace grpc {
 
-template<class mutex>
+template <class mutex>
 class lock_guard;
 class condition_variable;
 
@@ -46,6 +46,7 @@ class mutex {
  public:
   mutex() { gpr_mu_init(&mu_); }
   ~mutex() { gpr_mu_destroy(&mu_); }
+
  private:
   ::gpr_mu mu_;
   template <class mutex>
@@ -58,6 +59,7 @@ class lock_guard {
  public:
   lock_guard(mutex &mu) : mu_(mu), locked(true) { gpr_mu_lock(&mu.mu_); }
   ~lock_guard() { unlock_internal(); }
+
  protected:
   void lock_internal() {
     if (!locked) gpr_mu_lock(&mu_.mu_);
@@ -67,6 +69,7 @@ class lock_guard {
     if (locked) gpr_mu_unlock(&mu_.mu_);
     locked = false;
   }
+
  private:
   mutex &mu_;
   bool locked;
@@ -76,7 +79,7 @@ class lock_guard {
 template <class mutex>
 class unique_lock : public lock_guard<mutex> {
  public:
-  unique_lock(mutex &mu) : lock_guard<mutex>(mu) { }
+  unique_lock(mutex &mu) : lock_guard<mutex>(mu) {}
   void lock() { this->lock_internal(); }
   void unlock() { this->unlock_internal(); }
 };
@@ -92,6 +95,7 @@ class condition_variable {
   }
   void notify_one() { gpr_cv_signal(&cv_); }
   void notify_all() { gpr_cv_broadcast(&cv_); }
+
  private:
   gpr_cv cv_;
 };
diff --git a/include/grpc++/impl/thd.h b/include/grpc++/impl/thd.h
index 4c4578a92da142bfaef648b4b4cb1d69aaa58add..f8d4258ac61b72eb3b96050f3880b7d168a22c70 100644
--- a/include/grpc++/impl/thd.h
+++ b/include/grpc++/impl/thd.h
@@ -34,7 +34,7 @@
 #ifndef GRPCXX_IMPL_THD_H
 #define GRPCXX_IMPL_THD_H
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 #ifdef GRPC_CXX0X_NO_THREAD
 #include <grpc++/impl/thd_no_cxx11.h>
diff --git a/include/grpc++/impl/thd_no_cxx11.h b/include/grpc++/impl/thd_no_cxx11.h
index a6bdd7dfe9ec68eb21b6d6d72258120dbf4db434..84d03ce1847b60c2776dcfe57f2e65ac294387a6 100644
--- a/include/grpc++/impl/thd_no_cxx11.h
+++ b/include/grpc++/impl/thd_no_cxx11.h
@@ -40,7 +40,8 @@ namespace grpc {
 
 class thread {
  public:
-  template<class T> thread(void (T::*fptr)(), T *obj) {
+  template <class T>
+  thread(void (T::*fptr)(), T *obj) {
     func_ = new thread_function<T>(fptr, obj);
     joined_ = false;
     start();
@@ -53,28 +54,28 @@ class thread {
     gpr_thd_join(thd_);
     joined_ = true;
   }
+
  private:
   void start() {
     gpr_thd_options options = gpr_thd_options_default();
     gpr_thd_options_set_joinable(&options);
-    gpr_thd_new(&thd_, thread_func, (void *) func_, &options);
+    gpr_thd_new(&thd_, thread_func, (void *)func_, &options);
   }
   static void thread_func(void *arg) {
-    thread_function_base *func = (thread_function_base *) arg;
+    thread_function_base *func = (thread_function_base *)arg;
     func->call();
   }
   class thread_function_base {
    public:
-    virtual ~thread_function_base() { }
+    virtual ~thread_function_base() {}
     virtual void call() = 0;
   };
-  template<class T>
+  template <class T>
   class thread_function : public thread_function_base {
    public:
-    thread_function(void (T::*fptr)(), T *obj)
-      : fptr_(fptr)
-      , obj_(obj) { }
+    thread_function(void (T::*fptr)(), T *obj) : fptr_(fptr), obj_(obj) {}
     virtual void call() { (obj_->*fptr_)(); }
+
    private:
     void (T::*fptr_)();
     T *obj_;
@@ -84,8 +85,8 @@ class thread {
   bool joined_;
 
   // Disallow copy and assign.
-  thread(const thread&);
-  void operator=(const thread&);
+  thread(const thread &);
+  void operator=(const thread &);
 };
 
 }  // namespace grpc
diff --git a/include/grpc++/server.h b/include/grpc++/server.h
index 8755b4b4451762e1721805567f62b9d05a9c07b0..c8979e433cbd2c9200c3a1ec536dfef66b3cc356 100644
--- a/include/grpc++/server.h
+++ b/include/grpc++/server.h
@@ -38,11 +38,11 @@
 #include <memory>
 
 #include <grpc++/completion_queue.h>
-#include <grpc++/config.h>
 #include <grpc++/impl/call.h>
 #include <grpc++/impl/grpc_library.h>
 #include <grpc++/impl/sync.h>
-#include <grpc++/status.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status.h>
 
 struct grpc_server;
 
@@ -63,7 +63,14 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
   ~Server();
 
   // Shutdown the server, block until all rpc processing finishes.
-  void Shutdown();
+  // Forcefully terminate pending calls after deadline expires.
+  template <class T>
+  void Shutdown(const T& deadline) {
+    ShutdownInternal(TimePoint<T>(deadline).raw_time());
+  }
+
+  // Shutdown the server, waiting for all rpc processing to finish.
+  void Shutdown() { ShutdownInternal(gpr_inf_future(GPR_CLOCK_MONOTONIC)); }
 
   // Block waiting for all work to complete (the server must either
   // be shutting down or some other thread must call Shutdown for this
@@ -84,13 +91,14 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
          int max_message_size);
   // Register a service. This call does not take ownership of the service.
   // The service must exist for the lifetime of the Server instance.
-  bool RegisterService(const grpc::string *host, RpcService* service);
-  bool RegisterAsyncService(const grpc::string *host, AsynchronousService* service);
+  bool RegisterService(const grpc::string* host, RpcService* service);
+  bool RegisterAsyncService(const grpc::string* host,
+                            AsynchronousService* service);
   void RegisterAsyncGenericService(AsyncGenericService* service);
   // Add a listening port. Can be called multiple times.
   int AddListeningPort(const grpc::string& addr, ServerCredentials* creds);
   // Start the server.
-  bool Start();
+  bool Start(ServerCompletionQueue** cqs, size_t num_cqs);
 
   void HandleQueueClosed();
   void RunRpc();
@@ -98,11 +106,14 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
 
   void PerformOpsOnCall(CallOpSetInterface* ops, Call* call) GRPC_OVERRIDE;
 
+  void ShutdownInternal(gpr_timespec deadline);
+
   class BaseAsyncRequest : public CompletionQueueTag {
    public:
     BaseAsyncRequest(Server* server, ServerContext* context,
                      ServerAsyncStreamingInterface* stream,
-                     CompletionQueue* call_cq, void* tag);
+                     CompletionQueue* call_cq, void* tag,
+                     bool delete_on_finalize);
     virtual ~BaseAsyncRequest();
 
     bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE;
@@ -113,6 +124,7 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
     ServerAsyncStreamingInterface* const stream_;
     CompletionQueue* const call_cq_;
     void* const tag_;
+    const bool delete_on_finalize_;
     grpc_call* call_;
     grpc_metadata_array initial_metadata_array_;
   };
@@ -174,12 +186,13 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
     Message* const request_;
   };
 
-  class GenericAsyncRequest GRPC_FINAL : public BaseAsyncRequest {
+  class GenericAsyncRequest : public BaseAsyncRequest {
    public:
     GenericAsyncRequest(Server* server, GenericServerContext* context,
                         ServerAsyncStreamingInterface* stream,
                         CompletionQueue* call_cq,
-                        ServerCompletionQueue* notification_cq, void* tag);
+                        ServerCompletionQueue* notification_cq, void* tag,
+                        bool delete_on_finalize);
 
     bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE;
 
@@ -187,6 +200,10 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
     grpc_call_details call_details_;
   };
 
+  class UnimplementedAsyncRequestContext;
+  class UnimplementedAsyncRequest;
+  class UnimplementedAsyncResponse;
+
   template <class Message>
   void RequestAsyncCall(void* registered_method, ServerContext* context,
                         ServerAsyncStreamingInterface* stream,
@@ -211,7 +228,7 @@ class Server GRPC_FINAL : public GrpcLibrary, private CallHook {
                                ServerCompletionQueue* notification_cq,
                                void* tag) {
     new GenericAsyncRequest(this, context, stream, call_cq, notification_cq,
-                            tag);
+                            tag, true);
   }
 
   const int max_message_size_;
diff --git a/include/grpc++/server_builder.h b/include/grpc++/server_builder.h
index 44ee00eec9c5c55b94129c9bec23292f2a74f0c2..8cd2048592755e02563b19f8959c50e26ccde64f 100644
--- a/include/grpc++/server_builder.h
+++ b/include/grpc++/server_builder.h
@@ -37,7 +37,7 @@
 #include <memory>
 #include <vector>
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 namespace grpc {
 
@@ -76,15 +76,14 @@ class ServerBuilder {
   // The service must exist for the lifetime of the Server instance returned by
   // BuildAndStart().
   // Only matches requests with :authority \a host
-  void RegisterService(const grpc::string& host, 
-                       SynchronousService* service);
+  void RegisterService(const grpc::string& host, SynchronousService* service);
 
   // Register an asynchronous service.
   // This call does not take ownership of the service or completion queue.
   // The service and completion queuemust exist for the lifetime of the Server
   // instance returned by BuildAndStart().
   // Only matches requests with :authority \a host
-  void RegisterAsyncService(const grpc::string& host, 
+  void RegisterAsyncService(const grpc::string& host,
                             AsynchronousService* service);
 
   // Set max message size in bytes.
@@ -97,13 +96,9 @@ class ServerBuilder {
                         std::shared_ptr<ServerCredentials> creds,
                         int* selected_port = nullptr);
 
-  // Set the thread pool used for running appliation rpc handlers.
-  // Does not take ownership.
-  void SetThreadPool(ThreadPoolInterface* thread_pool);
-
   // Add a completion queue for handling asynchronous services
-  // Caller is required to keep this completion queue live until calling
-  // BuildAndStart()
+  // Caller is required to keep this completion queue live until
+  // the server is destroyed.
   std::unique_ptr<ServerCompletionQueue> AddCompletionQueue();
 
   // Return a running server which is ready for processing rpcs.
@@ -117,9 +112,10 @@ class ServerBuilder {
   };
 
   typedef std::unique_ptr<grpc::string> HostString;
-  template <class T> struct NamedService {
+  template <class T>
+  struct NamedService {
     explicit NamedService(T* s) : service(s) {}
-    NamedService(const grpc::string& h, T *s)
+    NamedService(const grpc::string& h, T* s)
         : host(new grpc::string(h)), service(s) {}
     HostString host;
     T* service;
@@ -127,7 +123,8 @@ class ServerBuilder {
 
   int max_message_size_;
   std::vector<std::unique_ptr<NamedService<RpcService>>> services_;
-  std::vector<std::unique_ptr<NamedService<AsynchronousService>>> async_services_;
+  std::vector<std::unique_ptr<NamedService<AsynchronousService>>>
+      async_services_;
   std::vector<Port> ports_;
   std::vector<ServerCompletionQueue*> cqs_;
   std::shared_ptr<ServerCredentials> creds_;
diff --git a/include/grpc++/server_context.h b/include/grpc++/server_context.h
index 8262dee654034561766f720b456fece6a15cb190..ce3cb47a237ee1a8e216d54dd2ea8ee45de69185 100644
--- a/include/grpc++/server_context.h
+++ b/include/grpc++/server_context.h
@@ -39,9 +39,9 @@
 
 #include <grpc/compression.h>
 #include <grpc/support/time.h>
-#include <grpc++/auth_context.h>
-#include <grpc++/config.h>
-#include <grpc++/time.h>
+#include <grpc++/support/auth_context.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/time.h>
 
 struct gpr_timespec;
 struct grpc_metadata;
@@ -81,7 +81,7 @@ class CompletionQueue;
 class Server;
 
 namespace testing {
-class InteropContextInspector;
+class InteropServerContextInspector;
 }  // namespace testing
 
 // Interface of server side rpc context.
@@ -136,7 +136,7 @@ class ServerContext {
   }
 
  private:
-  friend class ::grpc::testing::InteropContextInspector;
+  friend class ::grpc::testing::InteropServerContextInspector;
   friend class ::grpc::Server;
   template <class W, class R>
   friend class ::grpc::ServerAsyncReader;
diff --git a/include/grpc++/server_credentials.h b/include/grpc++/server_credentials.h
index 11acd67e8adad9443e23c10f1956473310a97db7..16b78c08afcfd052fefc94817440701211825134 100644
--- a/include/grpc++/server_credentials.h
+++ b/include/grpc++/server_credentials.h
@@ -37,7 +37,7 @@
 #include <memory>
 #include <vector>
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 struct grpc_server;
 
diff --git a/include/grpc++/stream.h b/include/grpc++/support/async_stream.h
similarity index 56%
rename from include/grpc++/stream.h
rename to include/grpc++/support/async_stream.h
index bc0c3c0f3b21a5d54ca6e8ceda9e67e8a3b7af16..4c12fda12f6d68785338b2898f77b68db64061cf 100644
--- a/include/grpc++/stream.h
+++ b/include/grpc++/support/async_stream.h
@@ -31,364 +31,20 @@
  *
  */
 
-#ifndef GRPCXX_STREAM_H
-#define GRPCXX_STREAM_H
+#ifndef GRPCXX_SUPPORT_ASYNC_STREAM_H
+#define GRPCXX_SUPPORT_ASYNC_STREAM_H
 
-#include <grpc++/channel_interface.h>
+#include <grpc/support/log.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/completion_queue.h>
-#include <grpc++/server_context.h>
 #include <grpc++/impl/call.h>
 #include <grpc++/impl/service_type.h>
-#include <grpc++/status.h>
-#include <grpc/support/log.h>
+#include <grpc++/server_context.h>
+#include <grpc++/support/status.h>
 
 namespace grpc {
 
-// Common interface for all client side streaming.
-class ClientStreamingInterface {
- public:
-  virtual ~ClientStreamingInterface() {}
-
-  // Wait until the stream finishes, and return the final status. When the
-  // client side declares it has no more message to send, either implicitly or
-  // by calling WritesDone, it needs to make sure there is no more message to
-  // be received from the server, either implicitly or by getting a false from
-  // a Read().
-  // This function will return either:
-  // - when all incoming messages have been read and the server has returned
-  //   status
-  // - OR when the server has returned a non-OK status
-  virtual Status Finish() = 0;
-};
-
-// An interface that yields a sequence of R messages.
-template <class R>
-class ReaderInterface {
- public:
-  virtual ~ReaderInterface() {}
-
-  // Blocking read a message and parse to msg. Returns true on success.
-  // The method returns false when there will be no more incoming messages,
-  // either because the other side has called WritesDone or the stream has
-  // failed (or been cancelled).
-  virtual bool Read(R* msg) = 0;
-};
-
-// An interface that can be fed a sequence of W messages.
-template <class W>
-class WriterInterface {
- public:
-  virtual ~WriterInterface() {}
-
-  // Blocking write msg to the stream. Returns true on success.
-  // Returns false when the stream has been closed.
-  virtual bool Write(const W& msg, const WriteOptions& options) = 0;
-
-  inline bool Write(const W& msg) {
-    return Write(msg, WriteOptions());
-  }
-};
-
-template <class R>
-class ClientReaderInterface : public ClientStreamingInterface,
-                              public ReaderInterface<R> {
- public:
-  virtual void WaitForInitialMetadata() = 0;
-};
-
-template <class R>
-class ClientReader GRPC_FINAL : public ClientReaderInterface<R> {
- public:
-  // Blocking create a stream and write the first request out.
-  template <class W>
-  ClientReader(ChannelInterface* channel, const RpcMethod& method,
-               ClientContext* context, const W& request)
-      : context_(context), call_(channel->CreateCall(method, context, &cq_)) {
-    CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage,
-              CallOpClientSendClose> ops;
-    ops.SendInitialMetadata(context->send_initial_metadata_);
-    // TODO(ctiller): don't assert
-    GPR_ASSERT(ops.SendMessage(request).ok());
-    ops.ClientSendClose();
-    call_.PerformOps(&ops);
-    cq_.Pluck(&ops);
-  }
-
-  // Blocking wait for initial metadata from server. The received metadata
-  // can only be accessed after this call returns. Should only be called before
-  // the first read. Calling this method is optional, and if it is not called
-  // the metadata will be available in ClientContext after the first read.
-  void WaitForInitialMetadata() {
-    GPR_ASSERT(!context_->initial_metadata_received_);
-
-    CallOpSet<CallOpRecvInitialMetadata> ops;
-    ops.RecvInitialMetadata(context_);
-    call_.PerformOps(&ops);
-    cq_.Pluck(&ops);  // status ignored
-  }
-
-  bool Read(R* msg) GRPC_OVERRIDE {
-    CallOpSet<CallOpRecvInitialMetadata, CallOpRecvMessage<R>> ops;
-    if (!context_->initial_metadata_received_) {
-      ops.RecvInitialMetadata(context_);
-    }
-    ops.RecvMessage(msg);
-    call_.PerformOps(&ops);
-    return cq_.Pluck(&ops) && ops.got_message;
-  }
-
-  Status Finish() GRPC_OVERRIDE {
-    CallOpSet<CallOpClientRecvStatus> ops;
-    Status status;
-    ops.ClientRecvStatus(context_, &status);
-    call_.PerformOps(&ops);
-    GPR_ASSERT(cq_.Pluck(&ops));
-    return status;
-  }
-
- private:
-  ClientContext* context_;
-  CompletionQueue cq_;
-  Call call_;
-};
-
-template <class W>
-class ClientWriterInterface : public ClientStreamingInterface,
-                              public WriterInterface<W> {
- public:
-  virtual bool WritesDone() = 0;
-};
-
-template <class W>
-class ClientWriter : public ClientWriterInterface<W> {
- public:
-  // Blocking create a stream.
-  template <class R>
-  ClientWriter(ChannelInterface* channel, const RpcMethod& method,
-               ClientContext* context, R* response)
-      : context_(context), call_(channel->CreateCall(method, context, &cq_)) {
-    finish_ops_.RecvMessage(response);
-
-    CallOpSet<CallOpSendInitialMetadata> ops;
-    ops.SendInitialMetadata(context->send_initial_metadata_);
-    call_.PerformOps(&ops);
-    cq_.Pluck(&ops);
-  }
-
-  using WriterInterface<W>::Write;
-  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
-    CallOpSet<CallOpSendMessage> ops;
-    if (!ops.SendMessage(msg, options).ok()) {
-      return false;
-    }
-    call_.PerformOps(&ops);
-    return cq_.Pluck(&ops);
-  }
-
-  bool WritesDone() GRPC_OVERRIDE {
-    CallOpSet<CallOpClientSendClose> ops;
-    ops.ClientSendClose();
-    call_.PerformOps(&ops);
-    return cq_.Pluck(&ops);
-  }
-
-  // Read the final response and wait for the final status.
-  Status Finish() GRPC_OVERRIDE {
-    Status status;
-    finish_ops_.ClientRecvStatus(context_, &status);
-    call_.PerformOps(&finish_ops_);
-    GPR_ASSERT(cq_.Pluck(&finish_ops_));
-    return status;
-  }
-
- private:
-  ClientContext* context_;
-  CallOpSet<CallOpGenericRecvMessage, CallOpClientRecvStatus> finish_ops_;
-  CompletionQueue cq_;
-  Call call_;
-};
-
-// Client-side interface for bi-directional streaming.
-template <class W, class R>
-class ClientReaderWriterInterface : public ClientStreamingInterface,
-                                    public WriterInterface<W>,
-                                    public ReaderInterface<R> {
- public:
-  virtual void WaitForInitialMetadata() = 0;
-  virtual bool WritesDone() = 0;
-};
-
-template <class W, class R>
-class ClientReaderWriter GRPC_FINAL : public ClientReaderWriterInterface<W, R> {
- public:
-  // Blocking create a stream.
-  ClientReaderWriter(ChannelInterface* channel, const RpcMethod& method,
-                     ClientContext* context)
-      : context_(context), call_(channel->CreateCall(method, context, &cq_)) {
-    CallOpSet<CallOpSendInitialMetadata> ops;
-    ops.SendInitialMetadata(context->send_initial_metadata_);
-    call_.PerformOps(&ops);
-    cq_.Pluck(&ops);
-  }
-
-  // Blocking wait for initial metadata from server. The received metadata
-  // can only be accessed after this call returns. Should only be called before
-  // the first read. Calling this method is optional, and if it is not called
-  // the metadata will be available in ClientContext after the first read.
-  void WaitForInitialMetadata() {
-    GPR_ASSERT(!context_->initial_metadata_received_);
-
-    CallOpSet<CallOpRecvInitialMetadata> ops;
-    ops.RecvInitialMetadata(context_);
-    call_.PerformOps(&ops);
-    cq_.Pluck(&ops);  // status ignored
-  }
-
-  bool Read(R* msg) GRPC_OVERRIDE {
-    CallOpSet<CallOpRecvInitialMetadata, CallOpRecvMessage<R>> ops;
-    if (!context_->initial_metadata_received_) {
-      ops.RecvInitialMetadata(context_);
-    }
-    ops.RecvMessage(msg);
-    call_.PerformOps(&ops);
-    return cq_.Pluck(&ops) && ops.got_message;
-  }
-
-  using WriterInterface<W>::Write;
-  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
-    CallOpSet<CallOpSendMessage> ops;
-    if (!ops.SendMessage(msg, options).ok()) return false;
-    call_.PerformOps(&ops);
-    return cq_.Pluck(&ops);
-  }
-
-  bool WritesDone() GRPC_OVERRIDE {
-    CallOpSet<CallOpClientSendClose> ops;
-    ops.ClientSendClose();
-    call_.PerformOps(&ops);
-    return cq_.Pluck(&ops);
-  }
-
-  Status Finish() GRPC_OVERRIDE {
-    CallOpSet<CallOpClientRecvStatus> ops;
-    Status status;
-    ops.ClientRecvStatus(context_, &status);
-    call_.PerformOps(&ops);
-    GPR_ASSERT(cq_.Pluck(&ops));
-    return status;
-  }
-
- private:
-  ClientContext* context_;
-  CompletionQueue cq_;
-  Call call_;
-};
-
-template <class R>
-class ServerReader GRPC_FINAL : public ReaderInterface<R> {
- public:
-  ServerReader(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
-
-  void SendInitialMetadata() {
-    GPR_ASSERT(!ctx_->sent_initial_metadata_);
-
-    CallOpSet<CallOpSendInitialMetadata> ops;
-    ops.SendInitialMetadata(ctx_->initial_metadata_);
-    ctx_->sent_initial_metadata_ = true;
-    call_->PerformOps(&ops);
-    call_->cq()->Pluck(&ops);
-  }
-
-  bool Read(R* msg) GRPC_OVERRIDE {
-    CallOpSet<CallOpRecvMessage<R>> ops;
-    ops.RecvMessage(msg);
-    call_->PerformOps(&ops);
-    return call_->cq()->Pluck(&ops) && ops.got_message;
-  }
-
- private:
-  Call* const call_;
-  ServerContext* const ctx_;
-};
-
-template <class W>
-class ServerWriter GRPC_FINAL : public WriterInterface<W> {
- public:
-  ServerWriter(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
-
-  void SendInitialMetadata() {
-    GPR_ASSERT(!ctx_->sent_initial_metadata_);
-
-    CallOpSet<CallOpSendInitialMetadata> ops;
-    ops.SendInitialMetadata(ctx_->initial_metadata_);
-    ctx_->sent_initial_metadata_ = true;
-    call_->PerformOps(&ops);
-    call_->cq()->Pluck(&ops);
-  }
-
-  using WriterInterface<W>::Write;
-  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
-    CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage> ops;
-    if (!ops.SendMessage(msg, options).ok()) {
-      return false;
-    }
-    if (!ctx_->sent_initial_metadata_) {
-      ops.SendInitialMetadata(ctx_->initial_metadata_);
-      ctx_->sent_initial_metadata_ = true;
-    }
-    call_->PerformOps(&ops);
-    return call_->cq()->Pluck(&ops);
-  }
-
- private:
-  Call* const call_;
-  ServerContext* const ctx_;
-};
-
-// Server-side interface for bi-directional streaming.
-template <class W, class R>
-class ServerReaderWriter GRPC_FINAL : public WriterInterface<W>,
-                                      public ReaderInterface<R> {
- public:
-  ServerReaderWriter(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
-
-  void SendInitialMetadata() {
-    GPR_ASSERT(!ctx_->sent_initial_metadata_);
-
-    CallOpSet<CallOpSendInitialMetadata> ops;
-    ops.SendInitialMetadata(ctx_->initial_metadata_);
-    ctx_->sent_initial_metadata_ = true;
-    call_->PerformOps(&ops);
-    call_->cq()->Pluck(&ops);
-  }
-
-  bool Read(R* msg) GRPC_OVERRIDE {
-    CallOpSet<CallOpRecvMessage<R>> ops;
-    ops.RecvMessage(msg);
-    call_->PerformOps(&ops);
-    return call_->cq()->Pluck(&ops) && ops.got_message;
-  }
-
-  using WriterInterface<W>::Write;
-  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
-    CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage> ops;
-    if (!ops.SendMessage(msg, options).ok()) {
-      return false;
-    }
-    if (!ctx_->sent_initial_metadata_) {
-      ops.SendInitialMetadata(ctx_->initial_metadata_);
-      ctx_->sent_initial_metadata_ = true;
-    }
-    call_->PerformOps(&ops);
-    return call_->cq()->Pluck(&ops);
-  }
-
- private:
-  Call* const call_;
-  ServerContext* const ctx_;
-};
-
 // Async interfaces
 // Common interface for all client side streaming.
 class ClientAsyncStreamingInterface {
@@ -427,7 +83,7 @@ class ClientAsyncReader GRPC_FINAL : public ClientAsyncReaderInterface<R> {
  public:
   // Create a stream and write the first request out.
   template <class W>
-  ClientAsyncReader(ChannelInterface* channel, CompletionQueue* cq,
+  ClientAsyncReader(Channel* channel, CompletionQueue* cq,
                     const RpcMethod& method, ClientContext* context,
                     const W& request, void* tag)
       : context_(context), call_(channel->CreateCall(method, context, cq)) {
@@ -486,7 +142,7 @@ template <class W>
 class ClientAsyncWriter GRPC_FINAL : public ClientAsyncWriterInterface<W> {
  public:
   template <class R>
-  ClientAsyncWriter(ChannelInterface* channel, CompletionQueue* cq,
+  ClientAsyncWriter(Channel* channel, CompletionQueue* cq,
                     const RpcMethod& method, ClientContext* context,
                     R* response, void* tag)
       : context_(context), call_(channel->CreateCall(method, context, cq)) {
@@ -551,7 +207,7 @@ template <class W, class R>
 class ClientAsyncReaderWriter GRPC_FINAL
     : public ClientAsyncReaderWriterInterface<W, R> {
  public:
-  ClientAsyncReaderWriter(ChannelInterface* channel, CompletionQueue* cq,
+  ClientAsyncReaderWriter(Channel* channel, CompletionQueue* cq,
                           const RpcMethod& method, ClientContext* context,
                           void* tag)
       : context_(context), call_(channel->CreateCall(method, context, cq)) {
@@ -640,9 +296,8 @@ class ServerAsyncReader GRPC_FINAL : public ServerAsyncStreamingInterface,
     }
     // The response is dropped if the status is not OK.
     if (status.ok()) {
-      finish_ops_.ServerSendStatus(
-          ctx_->trailing_metadata_,
-          finish_ops_.SendMessage(msg));
+      finish_ops_.ServerSendStatus(ctx_->trailing_metadata_,
+                                   finish_ops_.SendMessage(msg));
     } else {
       finish_ops_.ServerSendStatus(ctx_->trailing_metadata_, status);
     }
@@ -764,6 +419,8 @@ class ServerAsyncReaderWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
   }
 
  private:
+  friend class ::grpc::Server;
+
   void BindCall(Call* call) GRPC_OVERRIDE { call_ = *call; }
 
   Call call_;
@@ -776,4 +433,4 @@ class ServerAsyncReaderWriter GRPC_FINAL : public ServerAsyncStreamingInterface,
 
 }  // namespace grpc
 
-#endif  // GRPCXX_STREAM_H
+#endif  // GRPCXX_SUPPORT_ASYNC_STREAM_H
diff --git a/include/grpc++/async_unary_call.h b/include/grpc++/support/async_unary_call.h
similarity index 92%
rename from include/grpc++/async_unary_call.h
rename to include/grpc++/support/async_unary_call.h
index d631ccd1341d0361f78e68705c2f94aa7989a3eb..0f4ad2656fccd94a6d1f3daecfa4bd5f4459305d 100644
--- a/include/grpc++/async_unary_call.h
+++ b/include/grpc++/support/async_unary_call.h
@@ -31,17 +31,17 @@
  *
  */
 
-#ifndef GRPCXX_ASYNC_UNARY_CALL_H
-#define GRPCXX_ASYNC_UNARY_CALL_H
+#ifndef GRPCXX_SUPPORT_ASYNC_UNARY_CALL_H
+#define GRPCXX_SUPPORT_ASYNC_UNARY_CALL_H
 
-#include <grpc++/channel_interface.h>
+#include <grpc/support/log.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/completion_queue.h>
 #include <grpc++/server_context.h>
 #include <grpc++/impl/call.h>
 #include <grpc++/impl/service_type.h>
-#include <grpc++/status.h>
-#include <grpc/support/log.h>
+#include <grpc++/support/status.h>
 
 namespace grpc {
 
@@ -58,7 +58,7 @@ class ClientAsyncResponseReader GRPC_FINAL
     : public ClientAsyncResponseReaderInterface<R> {
  public:
   template <class W>
-  ClientAsyncResponseReader(ChannelInterface* channel, CompletionQueue* cq,
+  ClientAsyncResponseReader(Channel* channel, CompletionQueue* cq,
                             const RpcMethod& method, ClientContext* context,
                             const W& request)
       : context_(context), call_(channel->CreateCall(method, context, cq)) {
@@ -121,8 +121,8 @@ class ServerAsyncResponseWriter GRPC_FINAL
     }
     // The response is dropped if the status is not OK.
     if (status.ok()) {
-      finish_buf_.ServerSendStatus(
-          ctx_->trailing_metadata_, finish_buf_.SendMessage(msg));
+      finish_buf_.ServerSendStatus(ctx_->trailing_metadata_,
+                                   finish_buf_.SendMessage(msg));
     } else {
       finish_buf_.ServerSendStatus(ctx_->trailing_metadata_, status);
     }
@@ -152,4 +152,4 @@ class ServerAsyncResponseWriter GRPC_FINAL
 
 }  // namespace grpc
 
-#endif  // GRPCXX_ASYNC_UNARY_CALL_H
+#endif  // GRPCXX_SUPPORT_ASYNC_UNARY_CALL_H
diff --git a/include/grpc++/auth_context.h b/include/grpc++/support/auth_context.h
similarity index 95%
rename from include/grpc++/auth_context.h
rename to include/grpc++/support/auth_context.h
index f8ea8ad6f4fb99f4b5f071146a31b8aa4fd140b8..f4f2dcf5bbdfe3077a29ecd140c6f37a9c109789 100644
--- a/include/grpc++/auth_context.h
+++ b/include/grpc++/support/auth_context.h
@@ -31,13 +31,13 @@
  *
  */
 
-#ifndef GRPCXX_AUTH_CONTEXT_H
-#define GRPCXX_AUTH_CONTEXT_H
+#ifndef GRPCXX_SUPPORT_AUTH_CONTEXT_H
+#define GRPCXX_SUPPORT_AUTH_CONTEXT_H
 
 #include <iterator>
 #include <vector>
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 struct grpc_auth_context;
 struct grpc_auth_property;
@@ -62,6 +62,7 @@ class AuthPropertyIterator
   AuthPropertyIterator();
   AuthPropertyIterator(const grpc_auth_property* property,
                        const grpc_auth_property_iterator* iter);
+
  private:
   friend class SecureAuthContext;
   const grpc_auth_property* property_;
@@ -91,5 +92,4 @@ class AuthContext {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_AUTH_CONTEXT_H
-
+#endif  // GRPCXX_SUPPORT_AUTH_CONTEXT_H
diff --git a/include/grpc++/byte_buffer.h b/include/grpc++/support/byte_buffer.h
similarity index 91%
rename from include/grpc++/byte_buffer.h
rename to include/grpc++/support/byte_buffer.h
index cb3c6a115991fb66ca7ed13a48c8739c3a40c364..3f8cc25f47a9699b6de909809087cfc4e7b78935 100644
--- a/include/grpc++/byte_buffer.h
+++ b/include/grpc++/support/byte_buffer.h
@@ -31,16 +31,16 @@
  *
  */
 
-#ifndef GRPCXX_BYTE_BUFFER_H
-#define GRPCXX_BYTE_BUFFER_H
+#ifndef GRPCXX_SUPPORT_BYTE_BUFFER_H
+#define GRPCXX_SUPPORT_BYTE_BUFFER_H
 
 #include <grpc/grpc.h>
 #include <grpc/byte_buffer.h>
 #include <grpc/support/log.h>
-#include <grpc++/config.h>
-#include <grpc++/slice.h>
-#include <grpc++/status.h>
 #include <grpc++/impl/serialization_traits.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/slice.h>
+#include <grpc++/support/status.h>
 
 #include <vector>
 
@@ -91,8 +91,8 @@ class SerializationTraits<ByteBuffer, void> {
     dest->set_buffer(byte_buffer);
     return Status::OK;
   }
-  static Status Serialize(const ByteBuffer& source, grpc_byte_buffer** buffer, 
-                        bool* own_buffer) {
+  static Status Serialize(const ByteBuffer& source, grpc_byte_buffer** buffer,
+                          bool* own_buffer) {
     *buffer = source.buffer();
     *own_buffer = false;
     return Status::OK;
@@ -101,4 +101,4 @@ class SerializationTraits<ByteBuffer, void> {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_BYTE_BUFFER_H
+#endif  // GRPCXX_SUPPORT_BYTE_BUFFER_H
diff --git a/include/grpc++/channel_arguments.h b/include/grpc++/support/channel_arguments.h
similarity index 94%
rename from include/grpc++/channel_arguments.h
rename to include/grpc++/support/channel_arguments.h
index 4d926377ecd78f069f9da71831986d5657ca498f..cee68467c731b19ab3e4ae95ab0e813e36d9cdb0 100644
--- a/include/grpc++/channel_arguments.h
+++ b/include/grpc++/support/channel_arguments.h
@@ -31,15 +31,15 @@
  *
  */
 
-#ifndef GRPCXX_CHANNEL_ARGUMENTS_H
-#define GRPCXX_CHANNEL_ARGUMENTS_H
+#ifndef GRPCXX_SUPPORT_CHANNEL_ARGUMENTS_H
+#define GRPCXX_SUPPORT_CHANNEL_ARGUMENTS_H
 
 #include <vector>
 #include <list>
 
-#include <grpc++/config.h>
 #include <grpc/compression.h>
 #include <grpc/grpc.h>
+#include <grpc++/support/config.h>
 
 namespace grpc {
 namespace testing {
@@ -90,4 +90,4 @@ class ChannelArguments {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_CHANNEL_ARGUMENTS_H
+#endif  // GRPCXX_SUPPORT_CHANNEL_ARGUMENTS_H
diff --git a/include/grpc++/config.h b/include/grpc++/support/config.h
similarity index 96%
rename from include/grpc++/config.h
rename to include/grpc++/support/config.h
index 889dc39eb7b3899e271ddf38196a19d95a451eb4..836bd47283a3f3131629f25ab4566aa418f40633 100644
--- a/include/grpc++/config.h
+++ b/include/grpc++/support/config.h
@@ -31,8 +31,8 @@
  *
  */
 
-#ifndef GRPCXX_CONFIG_H
-#define GRPCXX_CONFIG_H
+#ifndef GRPCXX_SUPPORT_CONFIG_H
+#define GRPCXX_SUPPORT_CONFIG_H
 
 #if !defined(GRPC_NO_AUTODETECT_PLATFORM)
 
@@ -113,4 +113,4 @@ typedef GRPC_CUSTOM_STRING string;
 
 }  // namespace grpc
 
-#endif  // GRPCXX_CONFIG_H
+#endif  // GRPCXX_SUPPORT_CONFIG_H
diff --git a/include/grpc++/config_protobuf.h b/include/grpc++/support/config_protobuf.h
similarity index 95%
rename from include/grpc++/config_protobuf.h
rename to include/grpc++/support/config_protobuf.h
index 3afc7a58e2b6395539ab3ea8a751c0a110f3bce0..8235590d413fd68598e69b5e2f2cdab3e36abe2b 100644
--- a/include/grpc++/config_protobuf.h
+++ b/include/grpc++/support/config_protobuf.h
@@ -31,8 +31,8 @@
  *
  */
 
-#ifndef GRPCXX_CONFIG_PROTOBUF_H
-#define GRPCXX_CONFIG_PROTOBUF_H
+#ifndef GRPCXX_SUPPORT_CONFIG_PROTOBUF_H
+#define GRPCXX_SUPPORT_CONFIG_PROTOBUF_H
 
 #ifndef GRPC_CUSTOM_PROTOBUF_INT64
 #include <google/protobuf/stubs/common.h>
@@ -69,4 +69,4 @@ typedef GRPC_CUSTOM_CODEDINPUTSTREAM CodedInputStream;
 }  // namespace protobuf
 }  // namespace grpc
 
-#endif  // GRPCXX_CONFIG_PROTOBUF_H
+#endif  // GRPCXX_SUPPORT_CONFIG_PROTOBUF_H
diff --git a/include/grpc++/slice.h b/include/grpc++/support/slice.h
similarity index 94%
rename from include/grpc++/slice.h
rename to include/grpc++/support/slice.h
index 3e01bcf0ad766434d3d02ed8b236591df102023b..b2343a7f3df17495d65ba7ff0e9600d2fcba456b 100644
--- a/include/grpc++/slice.h
+++ b/include/grpc++/support/slice.h
@@ -31,11 +31,11 @@
  *
  */
 
-#ifndef GRPCXX_SLICE_H
-#define GRPCXX_SLICE_H
+#ifndef GRPCXX_SUPPORT_SLICE_H
+#define GRPCXX_SUPPORT_SLICE_H
 
 #include <grpc/support/slice.h>
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 namespace grpc {
 
@@ -71,4 +71,4 @@ class Slice GRPC_FINAL {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_SLICE_H
+#endif  // GRPCXX_SUPPORT_SLICE_H
diff --git a/include/grpc++/status.h b/include/grpc++/support/status.h
similarity index 92%
rename from include/grpc++/status.h
rename to include/grpc++/support/status.h
index fb8526ddce0ec29d66215c357a0080302de44f68..05750ff600f8608be1a912ce06651e0cdd63dcfd 100644
--- a/include/grpc++/status.h
+++ b/include/grpc++/support/status.h
@@ -31,11 +31,11 @@
  *
  */
 
-#ifndef GRPCXX_STATUS_H
-#define GRPCXX_STATUS_H
+#ifndef GRPCXX_SUPPORT_STATUS_H
+#define GRPCXX_SUPPORT_STATUS_H
 
-#include <grpc++/status_code_enum.h>
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status_code_enum.h>
 
 namespace grpc {
 
@@ -61,4 +61,4 @@ class Status {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_STATUS_H
+#endif  // GRPCXX_SUPPORT_STATUS_H
diff --git a/include/grpc++/status_code_enum.h b/include/grpc++/support/status_code_enum.h
similarity index 98%
rename from include/grpc++/status_code_enum.h
rename to include/grpc++/support/status_code_enum.h
index 2211c964cda89a18017f6d0b6f9f1afaed4ae8a3..7cb40452c84c022ff5091f7f7073c43651c64bf4 100644
--- a/include/grpc++/status_code_enum.h
+++ b/include/grpc++/support/status_code_enum.h
@@ -31,8 +31,8 @@
  *
  */
 
-#ifndef GRPCXX_STATUS_CODE_ENUM_H
-#define GRPCXX_STATUS_CODE_ENUM_H
+#ifndef GRPCXX_SUPPORT_STATUS_CODE_ENUM_H
+#define GRPCXX_SUPPORT_STATUS_CODE_ENUM_H
 
 namespace grpc {
 
@@ -156,4 +156,4 @@ enum StatusCode {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_STATUS_CODE_ENUM_H
+#endif  // GRPCXX_SUPPORT_STATUS_CODE_ENUM_H
diff --git a/include/grpc++/support/string_ref.h b/include/grpc++/support/string_ref.h
new file mode 100644
index 0000000000000000000000000000000000000000..0ec39a9b0a6a87b296679dd1c38b5a40fb7d2734
--- /dev/null
+++ b/include/grpc++/support/string_ref.h
@@ -0,0 +1,119 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef GRPCXX_STRING_REF_H
+#define GRPCXX_STRING_REF_H
+
+#include <iterator>
+
+#include <grpc++/support/config.h>
+
+namespace grpc {
+
+// This class is a non owning reference to a string.
+// It should be a strict subset of the upcoming std::string_ref. See:
+// http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3442.html
+class string_ref {
+ public:
+  // types
+  typedef const char* const_iterator;
+  typedef std::reverse_iterator<const_iterator> const_reverse_iterator;
+
+  // constants
+  static constexpr size_t npos = size_t(-1);
+
+  // construct/copy.
+  constexpr string_ref() : data_(nullptr), length_(0) {}
+  constexpr string_ref(const string_ref& other)
+      : data_(other.data_), length_(other.length_) {}
+  string_ref& operator=(const string_ref& rhs);
+  string_ref(const char* s);
+  constexpr string_ref(const char* s, size_t l) : data_(s), length_(l) {}
+  string_ref(const grpc::string& s) : data_(s.data()), length_(s.length()) {}
+
+  // iterators
+  constexpr const_iterator begin() const { return data_; }
+  constexpr const_iterator end() const { return data_ + length_; }
+  constexpr const_iterator cbegin() const { return data_; }
+  constexpr const_iterator cend() const { return data_ + length_; }
+  const_reverse_iterator rbegin() const {
+    return const_reverse_iterator(end());
+  }
+  const_reverse_iterator rend() const {
+    return const_reverse_iterator(begin());
+  }
+  const_reverse_iterator crbegin() const {
+    return const_reverse_iterator(end());
+  }
+  const_reverse_iterator crend() const {
+    return const_reverse_iterator(begin());
+  }
+
+  // capacity
+  constexpr size_t size() const { return length_; }
+  constexpr size_t length() const { return length_; }
+  constexpr size_t max_size() const { return length_; }
+  constexpr bool empty() const { return length_ == 0; }
+
+  // element access
+  const char* data() const { return data_; }
+
+  // string operations
+  int compare(string_ref x) const;
+  bool starts_with(string_ref x) const;
+  bool ends_with(string_ref x) const;
+  size_t find(string_ref s) const;
+  size_t find(char c) const;
+
+  // Defined as constexpr in n3442 but C++11 constexpr semantics do not allow
+  // the implementation of this function to comply.
+  /* constrexpr */ string_ref substr(size_t pos, size_t n = npos) const;
+
+ private:
+  const char* data_;
+  size_t length_;
+};
+
+// Comparison operators
+bool operator==(string_ref x, string_ref y);
+bool operator!=(string_ref x, string_ref y);
+bool operator<(string_ref x, string_ref y);
+bool operator>(string_ref x, string_ref y);
+bool operator<=(string_ref x, string_ref y);
+bool operator>=(string_ref x, string_ref y);
+
+}  // namespace grpc
+
+#endif  // GRPCXX_STRING_REF_H
+
+
diff --git a/include/grpc++/stub_options.h b/include/grpc++/support/stub_options.h
similarity index 93%
rename from include/grpc++/stub_options.h
rename to include/grpc++/support/stub_options.h
index c7c16dcd554d945887428cea51c407066b2b4923..973aa9bc83820d101948d07fe59fc2bf41b2fc0b 100644
--- a/include/grpc++/stub_options.h
+++ b/include/grpc++/support/stub_options.h
@@ -31,8 +31,8 @@
  *
  */
 
-#ifndef GRPCXX_STUB_OPTIONS_H
-#define GRPCXX_STUB_OPTIONS_H
+#ifndef GRPCXX_SUPPORT_STUB_OPTIONS_H
+#define GRPCXX_SUPPORT_STUB_OPTIONS_H
 
 namespace grpc {
 
@@ -40,4 +40,4 @@ class StubOptions {};
 
 }  // namespace grpc
 
-#endif  // GRPCXX_STUB_OPTIONS_H
+#endif  // GRPCXX_SUPPORT_STUB_OPTIONS_H
diff --git a/include/grpc++/support/sync_stream.h b/include/grpc++/support/sync_stream.h
new file mode 100644
index 0000000000000000000000000000000000000000..b4bb637ff2333de35bd5d82807735dbf24d4a759
--- /dev/null
+++ b/include/grpc++/support/sync_stream.h
@@ -0,0 +1,392 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#ifndef GRPCXX_SUPPORT_SYNC_STREAM_H
+#define GRPCXX_SUPPORT_SYNC_STREAM_H
+
+#include <grpc/support/log.h>
+#include <grpc++/channel.h>
+#include <grpc++/client_context.h>
+#include <grpc++/completion_queue.h>
+#include <grpc++/impl/call.h>
+#include <grpc++/impl/service_type.h>
+#include <grpc++/server_context.h>
+#include <grpc++/support/status.h>
+
+namespace grpc {
+
+// Common interface for all client side streaming.
+class ClientStreamingInterface {
+ public:
+  virtual ~ClientStreamingInterface() {}
+
+  // Wait until the stream finishes, and return the final status. When the
+  // client side declares it has no more message to send, either implicitly or
+  // by calling WritesDone, it needs to make sure there is no more message to
+  // be received from the server, either implicitly or by getting a false from
+  // a Read().
+  // This function will return either:
+  // - when all incoming messages have been read and the server has returned
+  //   status
+  // - OR when the server has returned a non-OK status
+  virtual Status Finish() = 0;
+};
+
+// An interface that yields a sequence of R messages.
+template <class R>
+class ReaderInterface {
+ public:
+  virtual ~ReaderInterface() {}
+
+  // Blocking read a message and parse to msg. Returns true on success.
+  // The method returns false when there will be no more incoming messages,
+  // either because the other side has called WritesDone or the stream has
+  // failed (or been cancelled).
+  virtual bool Read(R* msg) = 0;
+};
+
+// An interface that can be fed a sequence of W messages.
+template <class W>
+class WriterInterface {
+ public:
+  virtual ~WriterInterface() {}
+
+  // Blocking write msg to the stream. Returns true on success.
+  // Returns false when the stream has been closed.
+  virtual bool Write(const W& msg, const WriteOptions& options) = 0;
+
+  inline bool Write(const W& msg) { return Write(msg, WriteOptions()); }
+};
+
+template <class R>
+class ClientReaderInterface : public ClientStreamingInterface,
+                              public ReaderInterface<R> {
+ public:
+  virtual void WaitForInitialMetadata() = 0;
+};
+
+template <class R>
+class ClientReader GRPC_FINAL : public ClientReaderInterface<R> {
+ public:
+  // Blocking create a stream and write the first request out.
+  template <class W>
+  ClientReader(Channel* channel, const RpcMethod& method,
+               ClientContext* context, const W& request)
+      : context_(context), call_(channel->CreateCall(method, context, &cq_)) {
+    CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage,
+              CallOpClientSendClose> ops;
+    ops.SendInitialMetadata(context->send_initial_metadata_);
+    // TODO(ctiller): don't assert
+    GPR_ASSERT(ops.SendMessage(request).ok());
+    ops.ClientSendClose();
+    call_.PerformOps(&ops);
+    cq_.Pluck(&ops);
+  }
+
+  // Blocking wait for initial metadata from server. The received metadata
+  // can only be accessed after this call returns. Should only be called before
+  // the first read. Calling this method is optional, and if it is not called
+  // the metadata will be available in ClientContext after the first read.
+  void WaitForInitialMetadata() {
+    GPR_ASSERT(!context_->initial_metadata_received_);
+
+    CallOpSet<CallOpRecvInitialMetadata> ops;
+    ops.RecvInitialMetadata(context_);
+    call_.PerformOps(&ops);
+    cq_.Pluck(&ops);  // status ignored
+  }
+
+  bool Read(R* msg) GRPC_OVERRIDE {
+    CallOpSet<CallOpRecvInitialMetadata, CallOpRecvMessage<R>> ops;
+    if (!context_->initial_metadata_received_) {
+      ops.RecvInitialMetadata(context_);
+    }
+    ops.RecvMessage(msg);
+    call_.PerformOps(&ops);
+    return cq_.Pluck(&ops) && ops.got_message;
+  }
+
+  Status Finish() GRPC_OVERRIDE {
+    CallOpSet<CallOpClientRecvStatus> ops;
+    Status status;
+    ops.ClientRecvStatus(context_, &status);
+    call_.PerformOps(&ops);
+    GPR_ASSERT(cq_.Pluck(&ops));
+    return status;
+  }
+
+ private:
+  ClientContext* context_;
+  CompletionQueue cq_;
+  Call call_;
+};
+
+template <class W>
+class ClientWriterInterface : public ClientStreamingInterface,
+                              public WriterInterface<W> {
+ public:
+  virtual bool WritesDone() = 0;
+};
+
+template <class W>
+class ClientWriter : public ClientWriterInterface<W> {
+ public:
+  // Blocking create a stream.
+  template <class R>
+  ClientWriter(Channel* channel, const RpcMethod& method,
+               ClientContext* context, R* response)
+      : context_(context), call_(channel->CreateCall(method, context, &cq_)) {
+    finish_ops_.RecvMessage(response);
+
+    CallOpSet<CallOpSendInitialMetadata> ops;
+    ops.SendInitialMetadata(context->send_initial_metadata_);
+    call_.PerformOps(&ops);
+    cq_.Pluck(&ops);
+  }
+
+  using WriterInterface<W>::Write;
+  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
+    CallOpSet<CallOpSendMessage> ops;
+    if (!ops.SendMessage(msg, options).ok()) {
+      return false;
+    }
+    call_.PerformOps(&ops);
+    return cq_.Pluck(&ops);
+  }
+
+  bool WritesDone() GRPC_OVERRIDE {
+    CallOpSet<CallOpClientSendClose> ops;
+    ops.ClientSendClose();
+    call_.PerformOps(&ops);
+    return cq_.Pluck(&ops);
+  }
+
+  // Read the final response and wait for the final status.
+  Status Finish() GRPC_OVERRIDE {
+    Status status;
+    finish_ops_.ClientRecvStatus(context_, &status);
+    call_.PerformOps(&finish_ops_);
+    GPR_ASSERT(cq_.Pluck(&finish_ops_));
+    return status;
+  }
+
+ private:
+  ClientContext* context_;
+  CallOpSet<CallOpGenericRecvMessage, CallOpClientRecvStatus> finish_ops_;
+  CompletionQueue cq_;
+  Call call_;
+};
+
+// Client-side interface for bi-directional streaming.
+template <class W, class R>
+class ClientReaderWriterInterface : public ClientStreamingInterface,
+                                    public WriterInterface<W>,
+                                    public ReaderInterface<R> {
+ public:
+  virtual void WaitForInitialMetadata() = 0;
+  virtual bool WritesDone() = 0;
+};
+
+template <class W, class R>
+class ClientReaderWriter GRPC_FINAL : public ClientReaderWriterInterface<W, R> {
+ public:
+  // Blocking create a stream.
+  ClientReaderWriter(Channel* channel, const RpcMethod& method,
+                     ClientContext* context)
+      : context_(context), call_(channel->CreateCall(method, context, &cq_)) {
+    CallOpSet<CallOpSendInitialMetadata> ops;
+    ops.SendInitialMetadata(context->send_initial_metadata_);
+    call_.PerformOps(&ops);
+    cq_.Pluck(&ops);
+  }
+
+  // Blocking wait for initial metadata from server. The received metadata
+  // can only be accessed after this call returns. Should only be called before
+  // the first read. Calling this method is optional, and if it is not called
+  // the metadata will be available in ClientContext after the first read.
+  void WaitForInitialMetadata() {
+    GPR_ASSERT(!context_->initial_metadata_received_);
+
+    CallOpSet<CallOpRecvInitialMetadata> ops;
+    ops.RecvInitialMetadata(context_);
+    call_.PerformOps(&ops);
+    cq_.Pluck(&ops);  // status ignored
+  }
+
+  bool Read(R* msg) GRPC_OVERRIDE {
+    CallOpSet<CallOpRecvInitialMetadata, CallOpRecvMessage<R>> ops;
+    if (!context_->initial_metadata_received_) {
+      ops.RecvInitialMetadata(context_);
+    }
+    ops.RecvMessage(msg);
+    call_.PerformOps(&ops);
+    return cq_.Pluck(&ops) && ops.got_message;
+  }
+
+  using WriterInterface<W>::Write;
+  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
+    CallOpSet<CallOpSendMessage> ops;
+    if (!ops.SendMessage(msg, options).ok()) return false;
+    call_.PerformOps(&ops);
+    return cq_.Pluck(&ops);
+  }
+
+  bool WritesDone() GRPC_OVERRIDE {
+    CallOpSet<CallOpClientSendClose> ops;
+    ops.ClientSendClose();
+    call_.PerformOps(&ops);
+    return cq_.Pluck(&ops);
+  }
+
+  Status Finish() GRPC_OVERRIDE {
+    CallOpSet<CallOpClientRecvStatus> ops;
+    Status status;
+    ops.ClientRecvStatus(context_, &status);
+    call_.PerformOps(&ops);
+    GPR_ASSERT(cq_.Pluck(&ops));
+    return status;
+  }
+
+ private:
+  ClientContext* context_;
+  CompletionQueue cq_;
+  Call call_;
+};
+
+template <class R>
+class ServerReader GRPC_FINAL : public ReaderInterface<R> {
+ public:
+  ServerReader(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
+
+  void SendInitialMetadata() {
+    GPR_ASSERT(!ctx_->sent_initial_metadata_);
+
+    CallOpSet<CallOpSendInitialMetadata> ops;
+    ops.SendInitialMetadata(ctx_->initial_metadata_);
+    ctx_->sent_initial_metadata_ = true;
+    call_->PerformOps(&ops);
+    call_->cq()->Pluck(&ops);
+  }
+
+  bool Read(R* msg) GRPC_OVERRIDE {
+    CallOpSet<CallOpRecvMessage<R>> ops;
+    ops.RecvMessage(msg);
+    call_->PerformOps(&ops);
+    return call_->cq()->Pluck(&ops) && ops.got_message;
+  }
+
+ private:
+  Call* const call_;
+  ServerContext* const ctx_;
+};
+
+template <class W>
+class ServerWriter GRPC_FINAL : public WriterInterface<W> {
+ public:
+  ServerWriter(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
+
+  void SendInitialMetadata() {
+    GPR_ASSERT(!ctx_->sent_initial_metadata_);
+
+    CallOpSet<CallOpSendInitialMetadata> ops;
+    ops.SendInitialMetadata(ctx_->initial_metadata_);
+    ctx_->sent_initial_metadata_ = true;
+    call_->PerformOps(&ops);
+    call_->cq()->Pluck(&ops);
+  }
+
+  using WriterInterface<W>::Write;
+  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
+    CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage> ops;
+    if (!ops.SendMessage(msg, options).ok()) {
+      return false;
+    }
+    if (!ctx_->sent_initial_metadata_) {
+      ops.SendInitialMetadata(ctx_->initial_metadata_);
+      ctx_->sent_initial_metadata_ = true;
+    }
+    call_->PerformOps(&ops);
+    return call_->cq()->Pluck(&ops);
+  }
+
+ private:
+  Call* const call_;
+  ServerContext* const ctx_;
+};
+
+// Server-side interface for bi-directional streaming.
+template <class W, class R>
+class ServerReaderWriter GRPC_FINAL : public WriterInterface<W>,
+                                      public ReaderInterface<R> {
+ public:
+  ServerReaderWriter(Call* call, ServerContext* ctx) : call_(call), ctx_(ctx) {}
+
+  void SendInitialMetadata() {
+    GPR_ASSERT(!ctx_->sent_initial_metadata_);
+
+    CallOpSet<CallOpSendInitialMetadata> ops;
+    ops.SendInitialMetadata(ctx_->initial_metadata_);
+    ctx_->sent_initial_metadata_ = true;
+    call_->PerformOps(&ops);
+    call_->cq()->Pluck(&ops);
+  }
+
+  bool Read(R* msg) GRPC_OVERRIDE {
+    CallOpSet<CallOpRecvMessage<R>> ops;
+    ops.RecvMessage(msg);
+    call_->PerformOps(&ops);
+    return call_->cq()->Pluck(&ops) && ops.got_message;
+  }
+
+  using WriterInterface<W>::Write;
+  bool Write(const W& msg, const WriteOptions& options) GRPC_OVERRIDE {
+    CallOpSet<CallOpSendInitialMetadata, CallOpSendMessage> ops;
+    if (!ops.SendMessage(msg, options).ok()) {
+      return false;
+    }
+    if (!ctx_->sent_initial_metadata_) {
+      ops.SendInitialMetadata(ctx_->initial_metadata_);
+      ctx_->sent_initial_metadata_ = true;
+    }
+    call_->PerformOps(&ops);
+    return call_->cq()->Pluck(&ops);
+  }
+
+ private:
+  Call* const call_;
+  ServerContext* const ctx_;
+};
+
+}  // namespace grpc
+
+#endif  // GRPCXX_SUPPORT_SYNC_STREAM_H
diff --git a/include/grpc++/time.h b/include/grpc++/support/time.h
similarity index 96%
rename from include/grpc++/time.h
rename to include/grpc++/support/time.h
index 8fb2f8505cdf1706adc1dfc03a8264d152298ce2..2d4196b93b7a3afb6d362d5629c6553bf7bec67d 100644
--- a/include/grpc++/time.h
+++ b/include/grpc++/support/time.h
@@ -31,10 +31,10 @@
  *
  */
 
-#ifndef GRPCXX_TIME_H
-#define GRPCXX_TIME_H
+#ifndef GRPCXX_SUPPORT_TIME_H
+#define GRPCXX_SUPPORT_TIME_H
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 namespace grpc {
 
@@ -107,4 +107,4 @@ class TimePoint<std::chrono::system_clock::time_point> {
 
 #endif  // !GRPC_CXX0X_NO_CHRONO
 
-#endif  // GRPCXX_TIME_H
+#endif  // GRPCXX_SUPPORT_TIME_H
diff --git a/include/grpc/compression.h b/include/grpc/compression.h
index 913e553ba962e65d0fb4777156059286d8622f4c..82e326fe0ece42616233df3c798cc0cc76fef347 100644
--- a/include/grpc/compression.h
+++ b/include/grpc/compression.h
@@ -34,12 +34,17 @@
 #ifndef GRPC_COMPRESSION_H
 #define GRPC_COMPRESSION_H
 
+#include <stdlib.h>
+
+#include <grpc/support/port_platform.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 /** To be used in channel arguments */
 #define GRPC_COMPRESSION_ALGORITHM_ARG "grpc.compression_algorithm"
+#define GRPC_COMPRESSION_ALGORITHM_STATE_ARG "grpc.compression_algorithm_state"
 
 /* The various compression algorithms supported by GRPC */
 typedef enum {
@@ -58,9 +63,15 @@ typedef enum {
   GRPC_COMPRESS_LEVEL_COUNT
 } grpc_compression_level;
 
-/** Parses \a name as a grpc_compression_algorithm instance, updating \a
- * algorithm. Returns 1 upon success, 0 otherwise. */
-int grpc_compression_algorithm_parse(const char *name,
+typedef struct grpc_compression_options {
+  gpr_uint32 enabled_algorithms_bitset; /**< All algs are enabled by default */
+  grpc_compression_algorithm default_compression_algorithm; /**< for channel */
+} grpc_compression_options;
+
+/** Parses the first \a name_length bytes of \a name as a
+ * grpc_compression_algorithm instance, updating \a algorithm. Returns 1 upon
+ * success, 0 otherwise. */
+int grpc_compression_algorithm_parse(const char *name, size_t name_length,
                                      grpc_compression_algorithm *algorithm);
 
 /** Updates \a name with the encoding name corresponding to a valid \a
@@ -80,6 +91,20 @@ grpc_compression_level grpc_compression_level_for_algorithm(
 grpc_compression_algorithm grpc_compression_algorithm_for_level(
     grpc_compression_level level);
 
+void grpc_compression_options_init(grpc_compression_options *opts);
+
+/** Mark \a algorithm as enabled in \a opts. */
+void grpc_compression_options_enable_algorithm(
+     grpc_compression_options *opts, grpc_compression_algorithm algorithm);
+
+/** Mark \a algorithm as disabled in \a opts. */
+void grpc_compression_options_disable_algorithm(
+    grpc_compression_options *opts, grpc_compression_algorithm algorithm);
+
+/** Returns true if \a algorithm is marked as enabled in \a opts. */
+int grpc_compression_options_is_algorithm_enabled(
+    const grpc_compression_options *opts, grpc_compression_algorithm algorithm);
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/grpc/grpc.h b/include/grpc/grpc.h
index fd007090baf9ab25db0f44ee9003dbe2836c3dbb..92085a2895b99ec43aa0bdd3ed9cc486df3a7c68 100644
--- a/include/grpc/grpc.h
+++ b/include/grpc/grpc.h
@@ -385,13 +385,6 @@ typedef struct grpc_op {
     the reverse order they were initialized. */
 void grpc_register_plugin(void (*init)(void), void (*destroy)(void));
 
-/** Frees the memory used by all the plugin information.
-
-    While grpc_init and grpc_shutdown can be called multiple times, the plugins
-    won't be unregistered and their memory cleaned up unless you call that
-    function. Using atexit(grpc_unregister_all_plugins) is a valid method. */
-void grpc_unregister_all_plugins();
-
 /* Propagation bits: this can be bitwise or-ed to form propagation_mask for
  * grpc_call */
 /** Propagate deadline */
@@ -560,7 +553,9 @@ grpc_channel *grpc_insecure_channel_create(const char *target,
                                            void *reserved);
 
 /** Create a lame client: this client fails every operation attempted on it. */
-grpc_channel *grpc_lame_client_channel_create(const char *target);
+grpc_channel *grpc_lame_client_channel_create(const char *target,
+                                              grpc_status_code error_code,
+                                              const char *error_message);
 
 /** Close and destroy a grpc channel */
 void grpc_channel_destroy(grpc_channel *channel);
@@ -593,9 +588,14 @@ grpc_call_error grpc_call_cancel_with_status(grpc_call *call,
     THREAD SAFETY: grpc_call_destroy is thread-compatible */
 void grpc_call_destroy(grpc_call *call);
 
-/** Request notification of a new call. 'cq_for_notification' must
-    have been registered to the server via
-    grpc_server_register_completion_queue. */
+/** Request notification of a new call.
+    Once a call is received, a notification tagged with \a tag_new is added to 
+    \a cq_for_notification. \a call, \a details and \a request_metadata are 
+    updated with the appropriate call information. \a cq_bound_to_call is bound
+    to \a call, and batch operation notifications for that call will be posted
+    to \a cq_bound_to_call.
+    Note that \a cq_for_notification must have been registered to the server via
+    \a grpc_server_register_completion_queue. */
 grpc_call_error grpc_server_request_call(
     grpc_server *server, grpc_call **call, grpc_call_details *details,
     grpc_metadata_array *request_metadata,
@@ -626,8 +626,7 @@ grpc_call_error grpc_server_request_registered_call(
     be specified with args. If no additional configuration is needed, args can
     be NULL. See grpc_channel_args for more. The data in 'args' need only live
     through the invocation of this function. */
-grpc_server *grpc_server_create(const grpc_channel_args *args,
-                                void *reserved);
+grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved);
 
 /** Register a completion queue with the server. Must be done for any
     notification completion queue that is passed to grpc_server_request_*_call
diff --git a/include/grpc/grpc_security.h b/include/grpc/grpc_security.h
index 81d17712ec9e7aa9785a1a2ac28197a98192eb50..0bc36c059c76bd2b3f5cde8cd3862ebc91c7eaa9 100644
--- a/include/grpc/grpc_security.h
+++ b/include/grpc/grpc_security.h
@@ -280,12 +280,18 @@ int grpc_auth_context_set_peer_identity_property_name(grpc_auth_context *ctx,
 /* --- Auth Metadata Processing --- */
 
 /* Callback function that is called when the metadata processing is done.
-   success is 1 if processing succeeded, 0 otherwise.
-   Consumed metadata will be removed from the set of metadata available on the
-   call. */
+   - Consumed metadata will be removed from the set of metadata available on the
+     call. consumed_md may be NULL if no metadata has been consumed.
+   - Response metadata will be set on the response. response_md may be NULL.
+   - status is GRPC_STATUS_OK for success or a specific status for an error.
+     Common error status for auth metadata processing is either
+     GRPC_STATUS_UNAUTHENTICATED in case of an authentication failure or
+     GRPC_STATUS PERMISSION_DENIED in case of an authorization failure.
+   - error_details gives details about the error. May be NULL. */
 typedef void (*grpc_process_auth_metadata_done_cb)(
     void *user_data, const grpc_metadata *consumed_md, size_t num_consumed_md,
-    int success);
+    const grpc_metadata *response_md, size_t num_response_md,
+    grpc_status_code status, const char *error_details);
 
 /* Pluggable server-side metadata processor object. */
 typedef struct {
diff --git a/include/grpc/status.h b/include/grpc/status.h
index 456b9006e7b0996b82854013a0f492a288d3563c..65ce4102275aa2b4afb0c058b4e0185275e95407 100644
--- a/include/grpc/status.h
+++ b/include/grpc/status.h
@@ -160,4 +160,4 @@ typedef enum {
 }
 #endif
 
-#endif  /* GRPC_STATUS_H */
+#endif /* GRPC_STATUS_H */
diff --git a/include/grpc/support/alloc.h b/include/grpc/support/alloc.h
index 509870f3e3d7ff9b9244551559e4cbe78db52341..9d4e743da76367ae85b23e777f66e75761aec131 100644
--- a/include/grpc/support/alloc.h
+++ b/include/grpc/support/alloc.h
@@ -55,4 +55,4 @@ void gpr_free_aligned(void *ptr);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_ALLOC_H */
+#endif /* GRPC_SUPPORT_ALLOC_H */
diff --git a/include/grpc/support/atm.h b/include/grpc/support/atm.h
index ba8d7f579e19ba987d63ffce7158258ca715f19a..3f88e2e1a5cbdbb55936e6d8699beb702e9012ef 100644
--- a/include/grpc/support/atm.h
+++ b/include/grpc/support/atm.h
@@ -89,4 +89,4 @@
 #error could not determine platform for atm
 #endif
 
-#endif  /* GRPC_SUPPORT_ATM_H */
+#endif /* GRPC_SUPPORT_ATM_H */
diff --git a/include/grpc/support/atm_gcc_atomic.h b/include/grpc/support/atm_gcc_atomic.h
index a2c83860289ae314cc5bf1fd42a42bc44a842937..104e1d51dfba44026e13635fb28ede321e712b3b 100644
--- a/include/grpc/support/atm_gcc_atomic.h
+++ b/include/grpc/support/atm_gcc_atomic.h
@@ -69,4 +69,4 @@ static __inline int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
                                      __ATOMIC_RELAXED);
 }
 
-#endif  /* GRPC_SUPPORT_ATM_GCC_ATOMIC_H */
+#endif /* GRPC_SUPPORT_ATM_GCC_ATOMIC_H */
diff --git a/include/grpc/support/atm_gcc_sync.h b/include/grpc/support/atm_gcc_sync.h
index 38b5a9eec2571149324a29cb70bdece372b54a8c..241ae76c91deff97ed06ffe267a7e6f7489d93ac 100644
--- a/include/grpc/support/atm_gcc_sync.h
+++ b/include/grpc/support/atm_gcc_sync.h
@@ -84,4 +84,4 @@ static __inline void gpr_atm_no_barrier_store(gpr_atm *p, gpr_atm value) {
 #define gpr_atm_acq_cas(p, o, n) (__sync_bool_compare_and_swap((p), (o), (n)))
 #define gpr_atm_rel_cas(p, o, n) gpr_atm_acq_cas((p), (o), (n))
 
-#endif  /* GRPC_SUPPORT_ATM_GCC_SYNC_H */
+#endif /* GRPC_SUPPORT_ATM_GCC_SYNC_H */
diff --git a/include/grpc/support/atm_win32.h b/include/grpc/support/atm_win32.h
index 694528a9ba99bca224624e19aa5dd4ab16944d2e..cc016e5cdf34aec7f8de1f00e3b42b2b2c92d1b7 100644
--- a/include/grpc/support/atm_win32.h
+++ b/include/grpc/support/atm_win32.h
@@ -66,31 +66,31 @@ static __inline int gpr_atm_no_barrier_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
 /* InterlockedCompareExchangePointerNoFence() not available on vista or
    windows7 */
 #ifdef GPR_ARCH_64
-  return o == (gpr_atm)InterlockedCompareExchangeAcquire64((volatile LONGLONG *) p,
-                                                           (LONGLONG) n, (LONGLONG) o);
+  return o == (gpr_atm)InterlockedCompareExchangeAcquire64(
+                  (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
 #else
-  return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *) p,
-                                                         (LONG) n, (LONG) o);
+  return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *)p,
+                                                         (LONG)n, (LONG)o);
 #endif
 }
 
 static __inline int gpr_atm_acq_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
 #ifdef GPR_ARCH_64
-  return o == (gpr_atm)InterlockedCompareExchangeAcquire64((volatile LONGLONG *) p,
-                                                           (LONGLONG) n, (LONGLONG) o);
+  return o == (gpr_atm)InterlockedCompareExchangeAcquire64(
+                  (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
 #else
-  return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *) p,
-                                                         (LONG) n, (LONG) o);
+  return o == (gpr_atm)InterlockedCompareExchangeAcquire((volatile LONG *)p,
+                                                         (LONG)n, (LONG)o);
 #endif
 }
 
 static __inline int gpr_atm_rel_cas(gpr_atm *p, gpr_atm o, gpr_atm n) {
 #ifdef GPR_ARCH_64
-  return o == (gpr_atm)InterlockedCompareExchangeRelease64((volatile LONGLONG *) p,
-                                                           (LONGLONG) n, (LONGLONG) o);
+  return o == (gpr_atm)InterlockedCompareExchangeRelease64(
+                  (volatile LONGLONG *)p, (LONGLONG)n, (LONGLONG)o);
 #else
-  return o == (gpr_atm)InterlockedCompareExchangeRelease((volatile LONG *) p,
-                                                         (LONG) n, (LONG) o);
+  return o == (gpr_atm)InterlockedCompareExchangeRelease((volatile LONG *)p,
+                                                         (LONG)n, (LONG)o);
 #endif
 }
 
@@ -110,17 +110,16 @@ static __inline gpr_atm gpr_atm_full_fetch_add(gpr_atm *p, gpr_atm delta) {
 #ifdef GPR_ARCH_64
   do {
     old = *p;
-  } while (old != (gpr_atm)InterlockedCompareExchange64((volatile LONGLONG *) p,
-                                                        (LONGLONG) old + delta,
-                                                        (LONGLONG) old));
+  } while (old != (gpr_atm)InterlockedCompareExchange64((volatile LONGLONG *)p,
+                                                        (LONGLONG)old + delta,
+                                                        (LONGLONG)old));
 #else
   do {
     old = *p;
-  } while (old != (gpr_atm)InterlockedCompareExchange((volatile LONG *) p,
-                                                      (LONG) old + delta,
-                                                      (LONG) old));
+  } while (old != (gpr_atm)InterlockedCompareExchange(
+                      (volatile LONG *)p, (LONG)old + delta, (LONG)old));
 #endif
   return old;
 }
 
-#endif  /* GRPC_SUPPORT_ATM_WIN32_H */
+#endif /* GRPC_SUPPORT_ATM_WIN32_H */
diff --git a/include/grpc/support/cmdline.h b/include/grpc/support/cmdline.h
index e5a266666ee7c94507b8a7c4972292bf7819a24a..028dac2955c015f282785c530988f3edb6bc1574 100644
--- a/include/grpc/support/cmdline.h
+++ b/include/grpc/support/cmdline.h
@@ -94,4 +94,4 @@ char *gpr_cmdline_usage_string(gpr_cmdline *cl, const char *argv0);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_CMDLINE_H */
+#endif /* GRPC_SUPPORT_CMDLINE_H */
diff --git a/include/grpc/support/cpu.h b/include/grpc/support/cpu.h
index 2b2a56168aca58a9f6d176430c9c9b4879685922..7d8af59911cc9a71728193c812b7aa1d83f17212 100644
--- a/include/grpc/support/cpu.h
+++ b/include/grpc/support/cpu.h
@@ -54,4 +54,4 @@ unsigned gpr_cpu_current_cpu(void);
 }  // extern "C"
 #endif
 
-#endif  /* GRPC_SUPPORT_CPU_H */
+#endif /* GRPC_SUPPORT_CPU_H */
diff --git a/include/grpc/support/histogram.h b/include/grpc/support/histogram.h
index 64d08f0bf1f9aa63b558f7fb2be751d18df308f4..2fd1084208fdb9aeb3d42f1ba7488c432e4d51dc 100644
--- a/include/grpc/support/histogram.h
+++ b/include/grpc/support/histogram.h
@@ -73,4 +73,4 @@ void gpr_histogram_merge_contents(gpr_histogram *histogram,
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_HISTOGRAM_H */
+#endif /* GRPC_SUPPORT_HISTOGRAM_H */
diff --git a/include/grpc/support/host_port.h b/include/grpc/support/host_port.h
index 30267ab1dfc53434b1f27f64d7746d4127412a55..375d1774e6369ca343a74d29917d1530ffe4acf8 100644
--- a/include/grpc/support/host_port.h
+++ b/include/grpc/support/host_port.h
@@ -61,4 +61,4 @@ int gpr_split_host_port(const char *name, char **host, char **port);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_HOST_PORT_H */
+#endif /* GRPC_SUPPORT_HOST_PORT_H */
diff --git a/include/grpc/support/log.h b/include/grpc/support/log.h
index aad4f235d22b38f7123bae95bec4a09464b3f396..59db4ba1dd90445c76f11330de741808b5ba285c 100644
--- a/include/grpc/support/log.h
+++ b/include/grpc/support/log.h
@@ -105,4 +105,4 @@ void gpr_set_log_function(gpr_log_func func);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_LOG_H */
+#endif /* GRPC_SUPPORT_LOG_H */
diff --git a/include/grpc/support/log_win32.h b/include/grpc/support/log_win32.h
index 595a81a5af93093dee41b1c320fd176d894730e9..ea6b16dd77fa5e9f19bd398a6d9af98da4ab9711 100644
--- a/include/grpc/support/log_win32.h
+++ b/include/grpc/support/log_win32.h
@@ -48,4 +48,4 @@ char *gpr_format_message(DWORD messageid);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_LOG_WIN32_H */
+#endif /* GRPC_SUPPORT_LOG_WIN32_H */
diff --git a/include/grpc/support/port_platform.h b/include/grpc/support/port_platform.h
index d5745f987845563dd7dea64db3b6b4583c6cff13..d09815557ecd56ba0a964b7c6cc4a21e0ecfe205 100644
--- a/include/grpc/support/port_platform.h
+++ b/include/grpc/support/port_platform.h
@@ -64,7 +64,8 @@
 #undef GRPC_NOMINMAX_WAS_NOT_DEFINED
 #undef NOMINMAX
 #endif /* GRPC_WIN32_LEAN_AND_MEAN_WAS_NOT_DEFINED */
-#endif /* defined(_WIN64) || defined(WIN64) || defined(_WIN32) || defined(WIN32) */
+#endif /* defined(_WIN64) || defined(WIN64) || defined(_WIN32) || \
+          defined(WIN32) */
 
 /* Override this file with one for your platform if you need to redefine
    things.  */
diff --git a/include/grpc/support/slice.h b/include/grpc/support/slice.h
index ec6c117afe637a113464b40063dc3141286caa3b..3abb1b7ca1dc8f9b8661cff08328720a4b0736a0 100644
--- a/include/grpc/support/slice.h
+++ b/include/grpc/support/slice.h
@@ -96,7 +96,7 @@ typedef struct gpr_slice {
 #define GPR_SLICE_LENGTH(slice)                      \
   ((slice).refcount ? (slice).data.refcounted.length \
                     : (slice).data.inlined.length)
-#define GPR_SLICE_SET_LENGTH(slice, newlen)                       \
+#define GPR_SLICE_SET_LENGTH(slice, newlen)                               \
   ((slice).refcount ? ((slice).data.refcounted.length = (size_t)(newlen)) \
                     : ((slice).data.inlined.length = (gpr_uint8)(newlen)))
 #define GPR_SLICE_END_PTR(slice) \
diff --git a/include/grpc/support/string_util.h b/include/grpc/support/string_util.h
index 515709447b76d223f81a30fba7a19f9eb4e40911..109f9ffdf7958209d3e9b2ac5c1588f4f3f2e91a 100644
--- a/include/grpc/support/string_util.h
+++ b/include/grpc/support/string_util.h
@@ -58,4 +58,4 @@ int gpr_asprintf(char **strp, const char *format, ...);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_STRING_UTIL_H */
+#endif /* GRPC_SUPPORT_STRING_UTIL_H */
diff --git a/include/grpc/support/subprocess.h b/include/grpc/support/subprocess.h
index c884e5ef5e0b34c37404238c566949152735048a..654623fd09bbf98a2271af5bd190ff0201fa2b2d 100644
--- a/include/grpc/support/subprocess.h
+++ b/include/grpc/support/subprocess.h
@@ -36,7 +36,7 @@
 
 #ifdef __cplusplus
 extern "C" {
-#endif	
+#endif
 
 typedef struct gpr_subprocess gpr_subprocess;
 
diff --git a/include/grpc/support/sync.h b/include/grpc/support/sync.h
index 1dd826a828cb5149398275a9cffbf8819ee92564..172aea0217d16fdc8fda3b22c3de84b6a36be32d 100644
--- a/include/grpc/support/sync.h
+++ b/include/grpc/support/sync.h
@@ -312,4 +312,4 @@ gpr_intptr gpr_stats_read(const gpr_stats_counter *c);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_SYNC_H */
+#endif /* GRPC_SUPPORT_SYNC_H */
diff --git a/include/grpc/support/sync_generic.h b/include/grpc/support/sync_generic.h
index bbd1b3ea2ecf4cc87795718470afddd841501f51..fd55e02ea8d549bccbdc006f3af582309134fcb2 100644
--- a/include/grpc/support/sync_generic.h
+++ b/include/grpc/support/sync_generic.h
@@ -38,24 +38,18 @@
 #include <grpc/support/atm.h>
 
 /* gpr_event */
-typedef struct {
-  gpr_atm state;
-} gpr_event;
+typedef struct { gpr_atm state; } gpr_event;
 
 #define GPR_EVENT_INIT \
   { 0 }
 
 /* gpr_refcount */
-typedef struct {
-  gpr_atm count;
-} gpr_refcount;
+typedef struct { gpr_atm count; } gpr_refcount;
 
 /* gpr_stats_counter */
-typedef struct {
-  gpr_atm value;
-} gpr_stats_counter;
+typedef struct { gpr_atm value; } gpr_stats_counter;
 
 #define GPR_STATS_INIT \
   { 0 }
 
-#endif  /* GRPC_SUPPORT_SYNC_GENERIC_H */
+#endif /* GRPC_SUPPORT_SYNC_GENERIC_H */
diff --git a/include/grpc/support/sync_posix.h b/include/grpc/support/sync_posix.h
index 762d9ebe3cd15609d683394422270e5f39c6adc4..81ffa259007dd7c175a9dcf1b88db3f2500c708e 100644
--- a/include/grpc/support/sync_posix.h
+++ b/include/grpc/support/sync_posix.h
@@ -44,4 +44,4 @@ typedef pthread_once_t gpr_once;
 
 #define GPR_ONCE_INIT PTHREAD_ONCE_INIT
 
-#endif  /* GRPC_SUPPORT_SYNC_POSIX_H */
+#endif /* GRPC_SUPPORT_SYNC_POSIX_H */
diff --git a/include/grpc/support/sync_win32.h b/include/grpc/support/sync_win32.h
index 66b9af9074ba8a54da7f9957afbc11a2522cf987..8ddbeaab9785e05e3f3e4fcf625ad666ef910c39 100644
--- a/include/grpc/support/sync_win32.h
+++ b/include/grpc/support/sync_win32.h
@@ -46,4 +46,4 @@ typedef CONDITION_VARIABLE gpr_cv;
 typedef INIT_ONCE gpr_once;
 #define GPR_ONCE_INIT INIT_ONCE_STATIC_INIT
 
-#endif  /* GRPC_SUPPORT_SYNC_WIN32_H */
+#endif /* GRPC_SUPPORT_SYNC_WIN32_H */
diff --git a/include/grpc/support/thd.h b/include/grpc/support/thd.h
index 8126992d6b99dc5681ba69ab5eba3beaca6f5312..d3265f25bd814221fc1a6979f08e937f0d30e615 100644
--- a/include/grpc/support/thd.h
+++ b/include/grpc/support/thd.h
@@ -88,4 +88,4 @@ void gpr_thd_join(gpr_thd_id t);
 }
 #endif
 
-#endif  /* GRPC_SUPPORT_THD_H */
+#endif /* GRPC_SUPPORT_THD_H */
diff --git a/include/grpc/support/time.h b/include/grpc/support/time.h
index be59c37956bd3e75ff357efe342db1e415c700c4..4ef9c764592bb3f07f55b5fcc2a08d6b7ab2421a 100644
--- a/include/grpc/support/time.h
+++ b/include/grpc/support/time.h
@@ -84,7 +84,8 @@ void gpr_time_init(void);
 gpr_timespec gpr_now(gpr_clock_type clock);
 
 /* Convert a timespec from one clock to another */
-gpr_timespec gpr_convert_clock_type(gpr_timespec t, gpr_clock_type target_clock);
+gpr_timespec gpr_convert_clock_type(gpr_timespec t,
+                                    gpr_clock_type target_clock);
 
 /* Return -ve, 0, or +ve according to whether a < b, a == b, or a > b
    respectively.  */
diff --git a/include/grpc/support/tls.h b/include/grpc/support/tls.h
index 156280e47da5a6b7aaa5648dfbf6baa6e5557617..a4ebac56fd2df9378880b10583ce1e8487366cf2 100644
--- a/include/grpc/support/tls.h
+++ b/include/grpc/support/tls.h
@@ -47,7 +47,7 @@
      GPR_TLS_DECL(foo);
    Thread locals always have static scope.
 
-   Initializing a thread local (must be done at library initialization 
+   Initializing a thread local (must be done at library initialization
    time):
      gpr_tls_init(&foo);
 
@@ -58,7 +58,7 @@
      gpr_tls_set(&foo, new_value);
 
    Accessing a thread local:
-     current_value = gpr_tls_get(&foo, value); 
+     current_value = gpr_tls_get(&foo, value);
 
    ALL functions here may be implemented as macros. */
 
diff --git a/include/grpc/support/tls_gcc.h b/include/grpc/support/tls_gcc.h
index a078b104ea9594bfe683a80d9f2643ab6012d98d..1a02fb22d7c0c477826e5c57a134b25ddf916308 100644
--- a/include/grpc/support/tls_gcc.h
+++ b/include/grpc/support/tls_gcc.h
@@ -42,10 +42,14 @@ struct gpr_gcc_thread_local {
 };
 
 #define GPR_TLS_DECL(name) \
-    static __thread struct gpr_gcc_thread_local name = {0}
+  static __thread struct gpr_gcc_thread_local name = {0}
 
-#define gpr_tls_init(tls) do {} while (0)
-#define gpr_tls_destroy(tls) do {} while (0)
+#define gpr_tls_init(tls) \
+  do {                    \
+  } while (0)
+#define gpr_tls_destroy(tls) \
+  do {                       \
+  } while (0)
 #define gpr_tls_set(tls, new_value) (((tls)->value) = (new_value))
 #define gpr_tls_get(tls) ((tls)->value)
 
diff --git a/include/grpc/support/tls_msvc.h b/include/grpc/support/tls_msvc.h
index 526aeeacdf02ec5542a90f4e27b0d41813cb87a0..9997f8e4b0ee307e787e54f5a753d0746a008541 100644
--- a/include/grpc/support/tls_msvc.h
+++ b/include/grpc/support/tls_msvc.h
@@ -42,10 +42,14 @@ struct gpr_msvc_thread_local {
 };
 
 #define GPR_TLS_DECL(name) \
-    static __declspec(thread) struct gpr_msvc_thread_local name = {0}
+  static __declspec(thread) struct gpr_msvc_thread_local name = {0}
 
-#define gpr_tls_init(tls) do {} while (0)
-#define gpr_tls_destroy(tls) do {} while (0)
+#define gpr_tls_init(tls) \
+  do {                    \
+  } while (0)
+#define gpr_tls_destroy(tls) \
+  do {                       \
+  } while (0)
 #define gpr_tls_set(tls, new_value) (((tls)->value) = (new_value))
 #define gpr_tls_get(tls) ((tls)->value)
 
diff --git a/include/grpc/support/useful.h b/include/grpc/support/useful.h
index 384261159047f74d9bde4b9d659fc7f3e0993774..9f08d788c0d5de2d7fcec406c4883831872157f3 100644
--- a/include/grpc/support/useful.h
+++ b/include/grpc/support/useful.h
@@ -46,10 +46,10 @@
 #define GPR_ARRAY_SIZE(array) (sizeof(array) / sizeof(*(array)))
 
 #define GPR_SWAP(type, a, b) \
-  do {                   \
-    type x = a;          \
-    a = b;               \
-    b = x;               \
+  do {                       \
+    type x = a;              \
+    a = b;                   \
+    b = x;                   \
   } while (0)
 
 /** Set the \a n-th bit of \a i (a mutable pointer). */
@@ -72,4 +72,4 @@
     0x0f0f0f0f) %                                \
    255)
 
-#endif  /* GRPC_SUPPORT_USEFUL_H */
+#endif /* GRPC_SUPPORT_USEFUL_H */
diff --git a/src/compiler/config.h b/src/compiler/config.h
index cd52aca57d3951dfcd76db8b8722e4508690b4e5..fea976c31818407a203c0b4b530e6206ae7c1dc1 100644
--- a/src/compiler/config.h
+++ b/src/compiler/config.h
@@ -34,8 +34,8 @@
 #ifndef SRC_COMPILER_CONFIG_H
 #define SRC_COMPILER_CONFIG_H
 
-#include <grpc++/config.h>
-#include <grpc++/config_protobuf.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/config_protobuf.h>
 
 #ifndef GRPC_CUSTOM_DESCRIPTOR
 #include <google/protobuf/descriptor.h>
diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc
index ea487bcd89a1ed2e82a0e909856a694b33635797..1bf2b16ed6ff787dd4ce2ad32913580c26aeda8c 100644
--- a/src/compiler/cpp_generator.cc
+++ b/src/compiler/cpp_generator.cc
@@ -112,18 +112,18 @@ grpc::string GetHeaderPrologue(const grpc::protobuf::FileDescriptor *file,
 grpc::string GetHeaderIncludes(const grpc::protobuf::FileDescriptor *file,
                                const Parameters &params) {
   grpc::string temp =
-      "#include <grpc++/impl/internal_stub.h>\n"
+      "#include <grpc++/support/async_stream.h>\n"
       "#include <grpc++/impl/rpc_method.h>\n"
       "#include <grpc++/impl/proto_utils.h>\n"
       "#include <grpc++/impl/service_type.h>\n"
-      "#include <grpc++/async_unary_call.h>\n"
-      "#include <grpc++/status.h>\n"
-      "#include <grpc++/stream.h>\n"
-      "#include <grpc++/stub_options.h>\n"
+      "#include <grpc++/support/async_unary_call.h>\n"
+      "#include <grpc++/support/status.h>\n"
+      "#include <grpc++/support/stub_options.h>\n"
+      "#include <grpc++/support/sync_stream.h>\n"
       "\n"
       "namespace grpc {\n"
       "class CompletionQueue;\n"
-      "class ChannelInterface;\n"
+      "class Channel;\n"
       "class RpcService;\n"
       "class ServerCompletionQueue;\n"
       "class ServerContext;\n"
@@ -554,17 +554,17 @@ void PrintHeaderService(grpc::protobuf::io::Printer *printer,
   printer->Outdent();
   printer->Print("};\n");
   printer->Print(
-      "class Stub GRPC_FINAL : public StubInterface,"
-      " public ::grpc::InternalStub {\n public:\n");
+      "class Stub GRPC_FINAL : public StubInterface"
+      " {\n public:\n");
   printer->Indent();
-  printer->Print(
-      "Stub(const std::shared_ptr< ::grpc::ChannelInterface>& channel);\n");
+  printer->Print("Stub(const std::shared_ptr< ::grpc::Channel>& channel);\n");
   for (int i = 0; i < service->method_count(); ++i) {
     PrintHeaderClientMethod(printer, service->method(i), vars, true);
   }
   printer->Outdent();
   printer->Print("\n private:\n");
   printer->Indent();
+  printer->Print("std::shared_ptr< ::grpc::Channel> channel_;\n");
   for (int i = 0; i < service->method_count(); ++i) {
     PrintHeaderClientMethod(printer, service->method(i), vars, false);
   }
@@ -575,7 +575,7 @@ void PrintHeaderService(grpc::protobuf::io::Printer *printer,
   printer->Print("};\n");
   printer->Print(
       "static std::unique_ptr<Stub> NewStub(const std::shared_ptr< "
-      "::grpc::ChannelInterface>& channel, "
+      "::grpc::Channel>& channel, "
       "const ::grpc::StubOptions& options = ::grpc::StubOptions());\n");
 
   printer->Print("\n");
@@ -702,12 +702,13 @@ grpc::string GetSourceIncludes(const grpc::protobuf::FileDescriptor *file,
     grpc::protobuf::io::Printer printer(&output_stream, '$');
     std::map<grpc::string, grpc::string> vars;
 
-    printer.Print(vars, "#include <grpc++/async_unary_call.h>\n");
-    printer.Print(vars, "#include <grpc++/channel_interface.h>\n");
+    printer.Print(vars, "#include <grpc++/channel.h>\n");
     printer.Print(vars, "#include <grpc++/impl/client_unary_call.h>\n");
     printer.Print(vars, "#include <grpc++/impl/rpc_service_method.h>\n");
     printer.Print(vars, "#include <grpc++/impl/service_type.h>\n");
-    printer.Print(vars, "#include <grpc++/stream.h>\n");
+    printer.Print(vars, "#include <grpc++/support/async_unary_call.h>\n");
+    printer.Print(vars, "#include <grpc++/support/async_stream.h>\n");
+    printer.Print(vars, "#include <grpc++/support/sync_stream.h>\n");
 
     if (!file->package().empty()) {
       std::vector<grpc::string> parts =
@@ -738,7 +739,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
                    "::grpc::ClientContext* context, "
                    "const $Request$& request, $Response$* response) {\n");
     printer->Print(*vars,
-                   "  return ::grpc::BlockingUnaryCall(channel(), "
+                   "  return ::grpc::BlockingUnaryCall(channel_.get(), "
                    "rpcmethod_$Method$_, "
                    "context, request, response);\n"
                    "}\n\n");
@@ -751,7 +752,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
     printer->Print(*vars,
                    "  return new "
                    "::grpc::ClientAsyncResponseReader< $Response$>("
-                   "channel(), cq, "
+                   "channel_.get(), cq, "
                    "rpcmethod_$Method$_, "
                    "context, request);\n"
                    "}\n\n");
@@ -762,7 +763,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
                    "::grpc::ClientContext* context, $Response$* response) {\n");
     printer->Print(*vars,
                    "  return new ::grpc::ClientWriter< $Request$>("
-                   "channel(), "
+                   "channel_.get(), "
                    "rpcmethod_$Method$_, "
                    "context, response);\n"
                    "}\n\n");
@@ -773,7 +774,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
                    "::grpc::CompletionQueue* cq, void* tag) {\n");
     printer->Print(*vars,
                    "  return new ::grpc::ClientAsyncWriter< $Request$>("
-                   "channel(), cq, "
+                   "channel_.get(), cq, "
                    "rpcmethod_$Method$_, "
                    "context, response, tag);\n"
                    "}\n\n");
@@ -785,7 +786,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
         "::grpc::ClientContext* context, const $Request$& request) {\n");
     printer->Print(*vars,
                    "  return new ::grpc::ClientReader< $Response$>("
-                   "channel(), "
+                   "channel_.get(), "
                    "rpcmethod_$Method$_, "
                    "context, request);\n"
                    "}\n\n");
@@ -796,7 +797,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
                    "::grpc::CompletionQueue* cq, void* tag) {\n");
     printer->Print(*vars,
                    "  return new ::grpc::ClientAsyncReader< $Response$>("
-                   "channel(), cq, "
+                   "channel_.get(), cq, "
                    "rpcmethod_$Method$_, "
                    "context, request, tag);\n"
                    "}\n\n");
@@ -808,7 +809,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
     printer->Print(*vars,
                    "  return new ::grpc::ClientReaderWriter< "
                    "$Request$, $Response$>("
-                   "channel(), "
+                   "channel_.get(), "
                    "rpcmethod_$Method$_, "
                    "context);\n"
                    "}\n\n");
@@ -820,7 +821,7 @@ void PrintSourceClientMethod(grpc::protobuf::io::Printer *printer,
     printer->Print(*vars,
                    "  return new "
                    "::grpc::ClientAsyncReaderWriter< $Request$, $Response$>("
-                   "channel(), cq, "
+                   "channel_.get(), cq, "
                    "rpcmethod_$Method$_, "
                    "context, tag);\n"
                    "}\n\n");
@@ -964,20 +965,19 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer,
   }
   printer->Print(*vars, "};\n\n");
 
-  printer->Print(
-      *vars,
-      "std::unique_ptr< $ns$$Service$::Stub> $ns$$Service$::NewStub("
-      "const std::shared_ptr< ::grpc::ChannelInterface>& channel, "
-      "const ::grpc::StubOptions& options) {\n"
-      "  std::unique_ptr< $ns$$Service$::Stub> stub(new "
-      "$ns$$Service$::Stub(channel));\n"
-      "  return stub;\n"
-      "}\n\n");
+  printer->Print(*vars,
+                 "std::unique_ptr< $ns$$Service$::Stub> $ns$$Service$::NewStub("
+                 "const std::shared_ptr< ::grpc::Channel>& channel, "
+                 "const ::grpc::StubOptions& options) {\n"
+                 "  std::unique_ptr< $ns$$Service$::Stub> stub(new "
+                 "$ns$$Service$::Stub(channel));\n"
+                 "  return stub;\n"
+                 "}\n\n");
   printer->Print(*vars,
                  "$ns$$Service$::Stub::Stub(const std::shared_ptr< "
-                 "::grpc::ChannelInterface>& channel)\n");
+                 "::grpc::Channel>& channel)\n");
   printer->Indent();
-  printer->Print(": ::grpc::InternalStub(channel)");
+  printer->Print(": channel_(channel)");
   for (int i = 0; i < service->method_count(); ++i) {
     const grpc::protobuf::MethodDescriptor *method = service->method(i);
     (*vars)["Method"] = method->name();
@@ -991,13 +991,12 @@ void PrintSourceService(grpc::protobuf::io::Printer *printer,
     } else {
       (*vars)["StreamingType"] = "BIDI_STREAMING";
     }
-    printer->Print(
-        *vars,
-        ", rpcmethod_$Method$_("
-        "$prefix$$Service$_method_names[$Idx$], "
-        "::grpc::RpcMethod::$StreamingType$, "
-        "channel->RegisterMethod($prefix$$Service$_method_names[$Idx$])"
-        ")\n");
+    printer->Print(*vars,
+                   ", rpcmethod_$Method$_("
+                   "$prefix$$Service$_method_names[$Idx$], "
+                   "::grpc::RpcMethod::$StreamingType$, "
+                   "channel"
+                   ")\n");
   }
   printer->Print("{}\n\n");
   printer->Outdent();
diff --git a/src/compiler/python_generator.cc b/src/compiler/python_generator.cc
index 2982a89fad11b045717505b854f2e144d99b93b8..72c457ac6b1f2a777c6ae1a5de8ba9e4c044933b 100644
--- a/src/compiler/python_generator.cc
+++ b/src/compiler/python_generator.cc
@@ -42,7 +42,7 @@
 #include <tuple>
 #include <vector>
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 #include "src/compiler/config.h"
 #include "src/compiler/generator_helpers.h"
 #include "src/compiler/python_generator.h"
diff --git a/src/core/channel/census_filter.c b/src/core/census/grpc_filter.c
similarity index 78%
rename from src/core/channel/census_filter.c
rename to src/core/census/grpc_filter.c
index d996c3475e42b80460799f414218009709aed404..fbedb35661ff8520cb8f6d3913489c7a92e691d9 100644
--- a/src/core/channel/census_filter.c
+++ b/src/core/census/grpc_filter.c
@@ -31,11 +31,13 @@
  *
  */
 
-#include "src/core/channel/census_filter.h"
+#include "src/core/census/grpc_filter.h"
 
 #include <stdio.h>
 #include <string.h>
 
+#include "include/grpc/census.h"
+#include "src/core/census/rpc_stat_id.h"
 #include "src/core/channel/channel_stack.h"
 #include "src/core/channel/noop_filter.h"
 #include "src/core/statistics/census_interface.h"
@@ -47,24 +49,19 @@
 
 typedef struct call_data {
   census_op_id op_id;
-  census_rpc_stats stats;
+  census_context* ctxt;
   gpr_timespec start_ts;
+  int error;
 
   /* recv callback */
   grpc_stream_op_buffer* recv_ops;
-  void (*on_done_recv)(void* user_data, int success);
-  void* recv_user_data;
+  grpc_iomgr_closure* on_done_recv;
 } call_data;
 
 typedef struct channel_data {
   grpc_mdstr* path_str; /* pointer to meta data str with key == ":path" */
 } channel_data;
 
-static void init_rpc_stats(census_rpc_stats* stats) {
-  memset(stats, 0, sizeof(census_rpc_stats));
-  stats->cnt = 1;
-}
-
 static void extract_and_annotate_method_tag(grpc_stream_op_buffer* sopb,
                                             call_data* calld,
                                             channel_data* chand) {
@@ -77,8 +74,7 @@ static void extract_and_annotate_method_tag(grpc_stream_op_buffer* sopb,
       if (m->md->key == chand->path_str) {
         gpr_log(GPR_DEBUG, "%s",
                 (const char*)GPR_SLICE_START_PTR(m->md->value->slice));
-        census_add_method_tag(calld->op_id, (const char*)GPR_SLICE_START_PTR(
-                                                m->md->value->slice));
+        /* Add method tag here */
       }
     }
   }
@@ -95,8 +91,6 @@ static void client_mutate_op(grpc_call_element* elem,
 
 static void client_start_transport_op(grpc_call_element* elem,
                                       grpc_transport_stream_op* op) {
-  call_data* calld = elem->call_data;
-  GPR_ASSERT((calld->op_id.upper != 0) || (calld->op_id.lower != 0));
   client_mutate_op(elem, op);
   grpc_call_next_op(elem, op);
 }
@@ -108,7 +102,7 @@ static void server_on_done_recv(void* ptr, int success) {
   if (success) {
     extract_and_annotate_method_tag(calld->recv_ops, calld, chand);
   }
-  calld->on_done_recv(calld->recv_user_data, success);
+  calld->on_done_recv->cb(calld->on_done_recv->cb_arg, success);
 }
 
 static void server_mutate_op(grpc_call_element* elem,
@@ -118,9 +112,7 @@ static void server_mutate_op(grpc_call_element* elem,
     /* substitute our callback for the op callback */
     calld->recv_ops = op->recv_ops;
     calld->on_done_recv = op->on_done_recv;
-    calld->recv_user_data = op->recv_user_data;
-    op->on_done_recv = server_on_done_recv;
-    op->recv_user_data = elem;
+    op->on_done_recv = calld->on_done_recv;
   }
 }
 
@@ -132,35 +124,19 @@ static void server_start_transport_op(grpc_call_element* elem,
   grpc_call_next_op(elem, op);
 }
 
-static void channel_op(grpc_channel_element* elem,
-                       grpc_channel_element* from_elem, grpc_channel_op* op) {
-  switch (op->type) {
-    case GRPC_TRANSPORT_CLOSED:
-      /* TODO(hongyu): Annotate trace information for all calls of the channel
-       */
-      break;
-    default:
-      break;
-  }
-  grpc_channel_next_op(elem, op);
-}
-
 static void client_init_call_elem(grpc_call_element* elem,
                                   const void* server_transport_data,
                                   grpc_transport_stream_op* initial_op) {
   call_data* d = elem->call_data;
   GPR_ASSERT(d != NULL);
-  init_rpc_stats(&d->stats);
   d->start_ts = gpr_now(GPR_CLOCK_REALTIME);
-  d->op_id = census_tracing_start_op();
   if (initial_op) client_mutate_op(elem, initial_op);
 }
 
 static void client_destroy_call_elem(grpc_call_element* elem) {
   call_data* d = elem->call_data;
   GPR_ASSERT(d != NULL);
-  census_record_rpc_client_stats(d->op_id, &d->stats);
-  census_tracing_end_op(d->op_id);
+  /* TODO(hongyu): record rpc client stats and census_rpc_end_op here */
 }
 
 static void server_init_call_elem(grpc_call_element* elem,
@@ -168,29 +144,24 @@ static void server_init_call_elem(grpc_call_element* elem,
                                   grpc_transport_stream_op* initial_op) {
   call_data* d = elem->call_data;
   GPR_ASSERT(d != NULL);
-  init_rpc_stats(&d->stats);
   d->start_ts = gpr_now(GPR_CLOCK_REALTIME);
-  d->op_id = census_tracing_start_op();
+  /* TODO(hongyu): call census_tracing_start_op here. */
+  grpc_iomgr_closure_init(d->on_done_recv, server_on_done_recv, elem);
   if (initial_op) server_mutate_op(elem, initial_op);
 }
 
 static void server_destroy_call_elem(grpc_call_element* elem) {
   call_data* d = elem->call_data;
   GPR_ASSERT(d != NULL);
-  d->stats.elapsed_time_ms = gpr_timespec_to_micros(
-      gpr_time_sub(gpr_now(GPR_CLOCK_REALTIME), d->start_ts));
-  census_record_rpc_server_stats(d->op_id, &d->stats);
-  census_tracing_end_op(d->op_id);
+  /* TODO(hongyu): record rpc server stats and census_tracing_end_op here */
 }
 
-static void init_channel_elem(grpc_channel_element* elem,
+static void init_channel_elem(grpc_channel_element* elem, grpc_channel* master,
                               const grpc_channel_args* args, grpc_mdctx* mdctx,
                               int is_first, int is_last) {
   channel_data* chand = elem->channel_data;
   GPR_ASSERT(chand != NULL);
-  GPR_ASSERT(!is_first);
-  GPR_ASSERT(!is_last);
-  chand->path_str = grpc_mdstr_from_string(mdctx, ":path");
+  chand->path_str = grpc_mdstr_from_string(mdctx, ":path", 0);
 }
 
 static void destroy_channel_elem(grpc_channel_element* elem) {
@@ -203,22 +174,24 @@ static void destroy_channel_elem(grpc_channel_element* elem) {
 
 const grpc_channel_filter grpc_client_census_filter = {
     client_start_transport_op,
-    channel_op,
+    grpc_channel_next_op,
     sizeof(call_data),
     client_init_call_elem,
     client_destroy_call_elem,
     sizeof(channel_data),
     init_channel_elem,
     destroy_channel_elem,
+    grpc_call_next_get_peer,
     "census-client"};
 
 const grpc_channel_filter grpc_server_census_filter = {
     server_start_transport_op,
-    channel_op,
+    grpc_channel_next_op,
     sizeof(call_data),
     server_init_call_elem,
     server_destroy_call_elem,
     sizeof(channel_data),
     init_channel_elem,
     destroy_channel_elem,
+    grpc_call_next_get_peer,
     "census-server"};
diff --git a/src/core/channel/census_filter.h b/src/core/census/grpc_filter.h
similarity index 97%
rename from src/core/channel/census_filter.h
rename to src/core/census/grpc_filter.h
index 4f9759f0db29fd3fd7029a5ae1c43b145275b859..1453c05d2862d690c4bd551717833e8f0770cfc8 100644
--- a/src/core/channel/census_filter.h
+++ b/src/core/census/grpc_filter.h
@@ -41,4 +41,4 @@
 extern const grpc_channel_filter grpc_client_census_filter;
 extern const grpc_channel_filter grpc_server_census_filter;
 
-#endif  /* GRPC_INTERNAL_CORE_CHANNEL_CENSUS_FILTER_H */
+#endif /* GRPC_INTERNAL_CORE_CHANNEL_CENSUS_FILTER_H */
diff --git a/src/core/channel/channel_args.c b/src/core/channel/channel_args.c
index c430b56fa2d36a3f847f8d2beddb50c6e113f860..54ee75af28968a0801a1eb5edbe96e6280928f22 100644
--- a/src/core/channel/channel_args.c
+++ b/src/core/channel/channel_args.c
@@ -37,6 +37,7 @@
 
 #include <grpc/support/alloc.h>
 #include <grpc/support/string_util.h>
+#include <grpc/support/useful.h>
 
 #include <string.h>
 
@@ -146,3 +147,65 @@ grpc_channel_args *grpc_channel_args_set_compression_algorithm(
   tmp.value.integer = algorithm;
   return grpc_channel_args_copy_and_add(a, &tmp, 1);
 }
+
+/** Returns 1 if the argument for compression algorithm's enabled states bitset
+ * was found in \a a, returning the arg's value in \a states. Otherwise, returns
+ * 0. */
+static int find_compression_algorithm_states_bitset(
+    const grpc_channel_args *a, int **states_arg) {
+  if (a != NULL) {
+    size_t i;
+    for (i = 0; i < a->num_args; ++i) {
+      if (a->args[i].type == GRPC_ARG_INTEGER &&
+          !strcmp(GRPC_COMPRESSION_ALGORITHM_STATE_ARG, a->args[i].key)) {
+        *states_arg = &a->args[i].value.integer;
+        return 1; /* GPR_TRUE */
+      }
+    }
+  }
+  return 0; /* GPR_FALSE */
+}
+
+grpc_channel_args *grpc_channel_args_compression_algorithm_set_state(
+    grpc_channel_args **a,
+    grpc_compression_algorithm algorithm,
+    int state) {
+  int *states_arg;
+  grpc_channel_args *result = *a;
+  const int states_arg_found =
+      find_compression_algorithm_states_bitset(*a, &states_arg);
+
+  if (states_arg_found) {
+    if (state != 0) {
+      GPR_BITSET(states_arg, algorithm);
+    } else {
+      GPR_BITCLEAR(states_arg, algorithm);
+    }
+  } else {
+    /* create a new arg */
+    grpc_arg tmp;
+    tmp.type = GRPC_ARG_INTEGER;
+    tmp.key = GRPC_COMPRESSION_ALGORITHM_STATE_ARG;
+    /* all enabled by default */
+    tmp.value.integer = (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1;
+    if (state != 0) {
+      GPR_BITSET(&tmp.value.integer, algorithm);
+    } else {
+      GPR_BITCLEAR(&tmp.value.integer, algorithm);
+    }
+    result = grpc_channel_args_copy_and_add(*a, &tmp, 1);
+    grpc_channel_args_destroy(*a);
+    *a = result;
+  }
+  return result;
+}
+
+int grpc_channel_args_compression_algorithm_get_states(
+    const grpc_channel_args *a) {
+  int *states_arg;
+  if (find_compression_algorithm_states_bitset(a, &states_arg)) {
+    return *states_arg;
+  } else {
+    return (1u << GRPC_COMPRESS_ALGORITHMS_COUNT) - 1; /* All algs. enabled */
+  }
+}
diff --git a/src/core/channel/channel_args.h b/src/core/channel/channel_args.h
index 7e6ddd3997ad92fd6142ff016be6d609d90ed1dc..06a6012dee8e42236aa892ced1a3c9a518bed290 100644
--- a/src/core/channel/channel_args.h
+++ b/src/core/channel/channel_args.h
@@ -67,4 +67,24 @@ grpc_compression_algorithm grpc_channel_args_get_compression_algorithm(
 grpc_channel_args *grpc_channel_args_set_compression_algorithm(
     grpc_channel_args *a, grpc_compression_algorithm algorithm);
 
+/** Sets the support for the given compression algorithm. By default, all
+ * compression algorithms are enabled. It's an error to disable an algorithm set
+ * by grpc_channel_args_set_compression_algorithm.
+ *
+ * Returns an instance will the updated algorithm states. The \a a pointer is
+ * modified to point to the returned instance (which may be different from the
+ * input value of \a a). */
+grpc_channel_args *grpc_channel_args_compression_algorithm_set_state(
+    grpc_channel_args **a,
+    grpc_compression_algorithm algorithm,
+    int enabled);
+
+/** Returns the bitset representing the support state (true for enabled, false
+ * for disabled) for compression algorithms.
+ *
+ * The i-th bit of the returned bitset corresponds to the i-th entry in the
+ * grpc_compression_algorithm enum. */
+int grpc_channel_args_compression_algorithm_get_states(
+    const grpc_channel_args *a);
+
 #endif /* GRPC_INTERNAL_CORE_CHANNEL_CHANNEL_ARGS_H */
diff --git a/src/core/channel/client_channel.c b/src/core/channel/client_channel.c
index 6c2e6b38a80ee445631360a8a56db0754f52fdf6..2e2503381389fc81d9ced307f1b27b6cc809ca69 100644
--- a/src/core/channel/client_channel.c
+++ b/src/core/channel/client_channel.c
@@ -84,8 +84,10 @@ typedef struct {
   grpc_pollset_set pollset_set;
 } channel_data;
 
-/** We create one watcher for each new lb_policy that is returned from a resolver,
-    to watch for state changes from the lb_policy. When a state change is seen, we
+/** We create one watcher for each new lb_policy that is returned from a
+   resolver,
+    to watch for state changes from the lb_policy. When a state change is seen,
+   we
     update the channel, and create a new watcher */
 typedef struct {
   channel_data *chand;
@@ -380,7 +382,8 @@ static void perform_transport_stream_op(grpc_call_element *elem,
           if (lb_policy) {
             grpc_transport_stream_op *op = &calld->waiting_op;
             grpc_pollset *bind_pollset = op->bind_pollset;
-            grpc_metadata_batch *initial_metadata = &op->send_ops->ops[0].data.metadata;
+            grpc_metadata_batch *initial_metadata =
+                &op->send_ops->ops[0].data.metadata;
             GRPC_LB_POLICY_REF(lb_policy, "pick");
             gpr_mu_unlock(&chand->mu_config);
             calld->state = CALL_WAITING_FOR_PICK;
@@ -388,13 +391,14 @@ static void perform_transport_stream_op(grpc_call_element *elem,
             GPR_ASSERT(op->bind_pollset);
             GPR_ASSERT(op->send_ops);
             GPR_ASSERT(op->send_ops->nops >= 1);
-            GPR_ASSERT(
-                op->send_ops->ops[0].type == GRPC_OP_METADATA);
+            GPR_ASSERT(op->send_ops->ops[0].type == GRPC_OP_METADATA);
             gpr_mu_unlock(&calld->mu_state);
 
-            grpc_iomgr_closure_init(&calld->async_setup_task, picked_target, calld);
+            grpc_iomgr_closure_init(&calld->async_setup_task, picked_target,
+                                    calld);
             grpc_lb_policy_pick(lb_policy, bind_pollset, initial_metadata,
-                                &calld->picked_channel, &calld->async_setup_task);
+                                &calld->picked_channel,
+                                &calld->async_setup_task);
 
             GRPC_LB_POLICY_UNREF(lb_policy, "pick");
           } else if (chand->resolver != NULL) {
@@ -430,7 +434,8 @@ static void cc_start_transport_stream_op(grpc_call_element *elem,
   perform_transport_stream_op(elem, op, 0);
 }
 
-static void watch_lb_policy(channel_data *chand, grpc_lb_policy *lb_policy, grpc_connectivity_state current_state);
+static void watch_lb_policy(channel_data *chand, grpc_lb_policy *lb_policy,
+                            grpc_connectivity_state current_state);
 
 static void on_lb_policy_state_changed(void *arg, int iomgr_success) {
   lb_policy_connectivity_watcher *w = arg;
@@ -450,7 +455,8 @@ static void on_lb_policy_state_changed(void *arg, int iomgr_success) {
   gpr_free(w);
 }
 
-static void watch_lb_policy(channel_data *chand, grpc_lb_policy *lb_policy, grpc_connectivity_state current_state) {
+static void watch_lb_policy(channel_data *chand, grpc_lb_policy *lb_policy,
+                            grpc_connectivity_state current_state) {
   lb_policy_connectivity_watcher *w = gpr_malloc(sizeof(*w));
   GRPC_CHANNEL_INTERNAL_REF(chand->master, "watch_lb_policy");
 
@@ -499,13 +505,13 @@ static void cc_on_config_changed(void *arg, int iomgr_success) {
   if (iomgr_success && chand->resolver) {
     grpc_resolver *resolver = chand->resolver;
     GRPC_RESOLVER_REF(resolver, "channel-next");
+    grpc_connectivity_state_set(&chand->state_tracker, state,
+                                "new_lb+resolver");
     gpr_mu_unlock(&chand->mu_config);
     GRPC_CHANNEL_INTERNAL_REF(chand->master, "resolver");
     grpc_resolver_next(resolver, &chand->incoming_configuration,
                        &chand->on_config_changed);
     GRPC_RESOLVER_UNREF(resolver, "channel-next");
-    grpc_connectivity_state_set(&chand->state_tracker, state,
-                                "new_lb+resolver");
     if (lb_policy != NULL) {
       watch_lb_policy(chand, lb_policy, state);
     }
@@ -663,7 +669,8 @@ static void init_channel_elem(grpc_channel_element *elem, grpc_channel *master,
   grpc_iomgr_closure_init(&chand->on_config_changed, cc_on_config_changed,
                           chand);
 
-  grpc_connectivity_state_init(&chand->state_tracker, GRPC_CHANNEL_IDLE, "client_channel");
+  grpc_connectivity_state_init(&chand->state_tracker, GRPC_CHANNEL_IDLE,
+                               "client_channel");
 }
 
 /* Destructor for channel_data */
@@ -747,19 +754,20 @@ void grpc_client_channel_watch_connectivity_state(
   gpr_mu_unlock(&chand->mu_config);
 }
 
-grpc_pollset_set *grpc_client_channel_get_connecting_pollset_set(grpc_channel_element *elem) {
+grpc_pollset_set *grpc_client_channel_get_connecting_pollset_set(
+    grpc_channel_element *elem) {
   channel_data *chand = elem->channel_data;
   return &chand->pollset_set;
 }
 
 void grpc_client_channel_add_interested_party(grpc_channel_element *elem,
-                                          grpc_pollset *pollset) {
+                                              grpc_pollset *pollset) {
   channel_data *chand = elem->channel_data;
   grpc_pollset_set_add_pollset(&chand->pollset_set, pollset);
 }
 
 void grpc_client_channel_del_interested_party(grpc_channel_element *elem,
-                                          grpc_pollset *pollset) {
+                                              grpc_pollset *pollset) {
   channel_data *chand = elem->channel_data;
   grpc_pollset_set_del_pollset(&chand->pollset_set, pollset);
 }
diff --git a/src/core/channel/client_channel.h b/src/core/channel/client_channel.h
index cd81294eb3df16bbb3b3b43bcbaa4cba0e44564a..13681e3956bead0b5a5e2df0745d2799af97f5f1 100644
--- a/src/core/channel/client_channel.h
+++ b/src/core/channel/client_channel.h
@@ -59,11 +59,12 @@ void grpc_client_channel_watch_connectivity_state(
     grpc_channel_element *elem, grpc_connectivity_state *state,
     grpc_iomgr_closure *on_complete);
 
-grpc_pollset_set *grpc_client_channel_get_connecting_pollset_set(grpc_channel_element *elem);
+grpc_pollset_set *grpc_client_channel_get_connecting_pollset_set(
+    grpc_channel_element *elem);
 
 void grpc_client_channel_add_interested_party(grpc_channel_element *channel,
-                                          grpc_pollset *pollset);
+                                              grpc_pollset *pollset);
 void grpc_client_channel_del_interested_party(grpc_channel_element *channel,
-                                          grpc_pollset *pollset);
+                                              grpc_pollset *pollset);
 
 #endif /* GRPC_INTERNAL_CORE_CHANNEL_CLIENT_CHANNEL_H */
diff --git a/src/core/channel/compress_filter.c b/src/core/channel/compress_filter.c
index 8963c13b0f520cf444a32705ba8ce3c299a1dad9..762a4edc73c985c1c402318982a3a9034479717a 100644
--- a/src/core/channel/compress_filter.c
+++ b/src/core/channel/compress_filter.c
@@ -35,22 +35,25 @@
 #include <string.h>
 
 #include <grpc/compression.h>
+#include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/slice_buffer.h>
 
 #include "src/core/channel/compress_filter.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/compression/message_compress.h"
+#include "src/core/support/string.h"
 
 typedef struct call_data {
   gpr_slice_buffer slices; /**< Buffers up input slices to be compressed */
   grpc_linked_mdelem compression_algorithm_storage;
+  grpc_linked_mdelem accept_encoding_storage;
   int remaining_slice_bytes; /**< Input data to be read, as per BEGIN_MESSAGE */
   int written_initial_metadata; /**< Already processed initial md? */
   /** Compression algorithm we'll try to use. It may be given by incoming
    * metadata, or by the channel's default compression settings. */
   grpc_compression_algorithm compression_algorithm;
-   /** If true, contents of \a compression_algorithm are authoritative */
+  /** If true, contents of \a compression_algorithm are authoritative */
   int has_compression_algorithm;
 } call_data;
 
@@ -59,8 +62,12 @@ typedef struct channel_data {
   grpc_mdstr *mdstr_request_compression_algorithm_key;
   /** Metadata key for the outgoing (used) compression algorithm */
   grpc_mdstr *mdstr_outgoing_compression_algorithm_key;
+  /** Metadata key for the accepted encodings */
+  grpc_mdstr *mdstr_compression_capabilities_key;
   /** Precomputed metadata elements for all available compression algorithms */
   grpc_mdelem *mdelem_compression_algorithms[GRPC_COMPRESS_ALGORITHMS_COUNT];
+  /** Precomputed metadata elements for the accepted encodings */
+  grpc_mdelem *mdelem_accept_encoding;
   /** The default, channel-level, compression algorithm */
   grpc_compression_algorithm default_compression_algorithm;
 } channel_data;
@@ -71,7 +78,7 @@ typedef struct channel_data {
  *
  * Returns 1 if the data was actually compress and 0 otherwise. */
 static int compress_send_sb(grpc_compression_algorithm algorithm,
-                             gpr_slice_buffer *slices) {
+                            gpr_slice_buffer *slices) {
   int did_compress;
   gpr_slice_buffer tmp;
   gpr_slice_buffer_init(&tmp);
@@ -86,14 +93,14 @@ static int compress_send_sb(grpc_compression_algorithm algorithm,
 /** For each \a md element from the incoming metadata, filter out the entry for
  * "grpc-encoding", using its value to populate the call data's
  * compression_algorithm field. */
-static grpc_mdelem* compression_md_filter(void *user_data, grpc_mdelem *md) {
+static grpc_mdelem *compression_md_filter(void *user_data, grpc_mdelem *md) {
   grpc_call_element *elem = user_data;
   call_data *calld = elem->call_data;
   channel_data *channeld = elem->channel_data;
 
   if (md->key == channeld->mdstr_request_compression_algorithm_key) {
     const char *md_c_str = grpc_mdstr_as_c_string(md->value);
-    if (!grpc_compression_algorithm_parse(md_c_str,
+    if (!grpc_compression_algorithm_parse(md_c_str, strlen(md_c_str),
                                           &calld->compression_algorithm)) {
       gpr_log(GPR_ERROR, "Invalid compression algorithm: '%s'. Ignoring.",
               md_c_str);
@@ -108,10 +115,10 @@ static grpc_mdelem* compression_md_filter(void *user_data, grpc_mdelem *md) {
 
 static int skip_compression(channel_data *channeld, call_data *calld) {
   if (calld->has_compression_algorithm) {
-     if (calld->compression_algorithm == GRPC_COMPRESS_NONE) {
-       return 1;
-     }
-     return 0;  /* we have an actual call-specific algorithm */
+    if (calld->compression_algorithm == GRPC_COMPRESS_NONE) {
+      return 1;
+    }
+    return 0; /* we have an actual call-specific algorithm */
   }
   /* no per-call compression override */
   return channeld->default_compression_algorithm == GRPC_COMPRESS_NONE;
@@ -184,7 +191,7 @@ static void process_send_ops(grpc_call_element *elem,
          * given by GRPC_OP_BEGIN_MESSAGE) */
         calld->remaining_slice_bytes = sop->data.begin_message.length;
         if (sop->data.begin_message.flags & GRPC_WRITE_NO_COMPRESS) {
-          calld->has_compression_algorithm = 1;  /* GPR_TRUE */
+          calld->has_compression_algorithm = 1; /* GPR_TRUE */
           calld->compression_algorithm = GRPC_COMPRESS_NONE;
         }
         break;
@@ -202,10 +209,17 @@ static void process_send_ops(grpc_call_element *elem,
                 channeld->default_compression_algorithm;
             calld->has_compression_algorithm = 1; /* GPR_TRUE */
           }
+          /* hint compression algorithm */
           grpc_metadata_batch_add_tail(
               &(sop->data.metadata), &calld->compression_algorithm_storage,
               GRPC_MDELEM_REF(channeld->mdelem_compression_algorithms
                                   [calld->compression_algorithm]));
+
+          /* convey supported compression algorithms */
+          grpc_metadata_batch_add_tail(
+              &(sop->data.metadata), &calld->accept_encoding_storage,
+              GRPC_MDELEM_REF(channeld->mdelem_accept_encoding));
+
           calld->written_initial_metadata = 1; /* GPR_TRUE */
         }
         break;
@@ -279,6 +293,9 @@ static void init_channel_elem(grpc_channel_element *elem, grpc_channel *master,
                               int is_first, int is_last) {
   channel_data *channeld = elem->channel_data;
   grpc_compression_algorithm algo_idx;
+  const char *supported_algorithms_names[GRPC_COMPRESS_ALGORITHMS_COUNT - 1];
+  char *accept_encoding_str;
+  size_t accept_encoding_str_len;
 
   channeld->default_compression_algorithm =
       grpc_channel_args_get_compression_algorithm(args);
@@ -289,6 +306,9 @@ static void init_channel_elem(grpc_channel_element *elem, grpc_channel *master,
   channeld->mdstr_outgoing_compression_algorithm_key =
       grpc_mdstr_from_string(mdctx, "grpc-encoding", 0);
 
+  channeld->mdstr_compression_capabilities_key =
+      grpc_mdstr_from_string(mdctx, "grpc-accept-encoding", 0);
+
   for (algo_idx = 0; algo_idx < GRPC_COMPRESS_ALGORITHMS_COUNT; ++algo_idx) {
     char *algorithm_name;
     GPR_ASSERT(grpc_compression_algorithm_name(algo_idx, &algorithm_name) != 0);
@@ -297,8 +317,22 @@ static void init_channel_elem(grpc_channel_element *elem, grpc_channel *master,
             mdctx,
             GRPC_MDSTR_REF(channeld->mdstr_outgoing_compression_algorithm_key),
             grpc_mdstr_from_string(mdctx, algorithm_name, 0));
+    if (algo_idx > 0) {
+      supported_algorithms_names[algo_idx - 1] = algorithm_name;
+    }
   }
 
+  /* TODO(dgq): gpr_strjoin_sep could be made to work with statically allocated
+   * arrays, as to avoid the heap allocs */
+  accept_encoding_str = gpr_strjoin_sep(
+      supported_algorithms_names, GPR_ARRAY_SIZE(supported_algorithms_names),
+      ", ", &accept_encoding_str_len);
+
+  channeld->mdelem_accept_encoding = grpc_mdelem_from_metadata_strings(
+      mdctx, GRPC_MDSTR_REF(channeld->mdstr_compression_capabilities_key),
+      grpc_mdstr_from_string(mdctx, accept_encoding_str, 0));
+  gpr_free(accept_encoding_str);
+
   GPR_ASSERT(!is_last);
 }
 
@@ -309,10 +343,11 @@ static void destroy_channel_elem(grpc_channel_element *elem) {
 
   GRPC_MDSTR_UNREF(channeld->mdstr_request_compression_algorithm_key);
   GRPC_MDSTR_UNREF(channeld->mdstr_outgoing_compression_algorithm_key);
-  for (algo_idx = 0; algo_idx < GRPC_COMPRESS_ALGORITHMS_COUNT;
-       ++algo_idx) {
+  GRPC_MDSTR_UNREF(channeld->mdstr_compression_capabilities_key);
+  for (algo_idx = 0; algo_idx < GRPC_COMPRESS_ALGORITHMS_COUNT; ++algo_idx) {
     GRPC_MDELEM_UNREF(channeld->mdelem_compression_algorithms[algo_idx]);
   }
+  GRPC_MDELEM_UNREF(channeld->mdelem_accept_encoding);
 }
 
 const grpc_channel_filter grpc_compress_filter = {
diff --git a/src/core/channel/compress_filter.h b/src/core/channel/compress_filter.h
index 0694e2c1dd991c8b909951e81dc791a9ee0aa736..415459bca60991261a74e09b099119a2bf7242b4 100644
--- a/src/core/channel/compress_filter.h
+++ b/src/core/channel/compress_filter.h
@@ -36,7 +36,7 @@
 
 #include "src/core/channel/channel_stack.h"
 
-#define GRPC_COMPRESS_REQUEST_ALGORITHM_KEY "internal:grpc-encoding-request"
+#define GRPC_COMPRESS_REQUEST_ALGORITHM_KEY "grpc-internal-encoding-request"
 
 /** Compression filter for outgoing data.
  *
@@ -62,4 +62,4 @@
 
 extern const grpc_channel_filter grpc_compress_filter;
 
-#endif  /* GRPC_INTERNAL_CORE_CHANNEL_COMPRESS_FILTER_H */
+#endif /* GRPC_INTERNAL_CORE_CHANNEL_COMPRESS_FILTER_H */
diff --git a/src/core/channel/http_client_filter.h b/src/core/channel/http_client_filter.h
index 04eb839e0063cf82387c80eea6c665cd1604c200..21c66b9b8ee758aa9a3851d10b6e1f7375f397c7 100644
--- a/src/core/channel/http_client_filter.h
+++ b/src/core/channel/http_client_filter.h
@@ -41,4 +41,4 @@ extern const grpc_channel_filter grpc_http_client_filter;
 
 #define GRPC_ARG_HTTP2_SCHEME "grpc.http2_scheme"
 
-#endif  /* GRPC_INTERNAL_CORE_CHANNEL_HTTP_CLIENT_FILTER_H */
+#endif /* GRPC_INTERNAL_CORE_CHANNEL_HTTP_CLIENT_FILTER_H */
diff --git a/src/core/channel/http_server_filter.h b/src/core/channel/http_server_filter.h
index 42f76ed17f2da27cdcdfa9fea9fb3444bab2b50a..f219d4e66f38724c2143c3fb46f2f081ffff02a2 100644
--- a/src/core/channel/http_server_filter.h
+++ b/src/core/channel/http_server_filter.h
@@ -39,4 +39,4 @@
 /* Processes metadata on the client side for HTTP2 transports */
 extern const grpc_channel_filter grpc_http_server_filter;
 
-#endif  /* GRPC_INTERNAL_CORE_CHANNEL_HTTP_SERVER_FILTER_H */
+#endif /* GRPC_INTERNAL_CORE_CHANNEL_HTTP_SERVER_FILTER_H */
diff --git a/src/core/channel/noop_filter.h b/src/core/channel/noop_filter.h
index 96463e5322282f48f84897b39c04bbf32c9888f4..ded9b33117fd9fae8eb1b84c77dbe0873461b059 100644
--- a/src/core/channel/noop_filter.h
+++ b/src/core/channel/noop_filter.h
@@ -41,4 +41,4 @@
    customize for their own filters */
 extern const grpc_channel_filter grpc_no_op_filter;
 
-#endif  /* GRPC_INTERNAL_CORE_CHANNEL_NOOP_FILTER_H */
+#endif /* GRPC_INTERNAL_CORE_CHANNEL_NOOP_FILTER_H */
diff --git a/src/core/client_config/resolvers/dns_resolver.c b/src/core/client_config/resolvers/dns_resolver.c
index 827b1a2be5e5fd98d2d1f5285c2962e5cf3c2c5e..7b35b7902f7450cab9b00b58b7cbc0fdedacc475 100644
--- a/src/core/client_config/resolvers/dns_resolver.c
+++ b/src/core/client_config/resolvers/dns_resolver.c
@@ -219,7 +219,8 @@ static grpc_resolver *dns_create(
   default_host_arg.type = GRPC_ARG_STRING;
   default_host_arg.key = GRPC_ARG_DEFAULT_AUTHORITY;
   default_host_arg.value.string = host;
-  subchannel_factory = grpc_subchannel_factory_add_channel_arg(subchannel_factory, &default_host_arg);
+  subchannel_factory = grpc_subchannel_factory_add_channel_arg(
+      subchannel_factory, &default_host_arg);
 
   gpr_free(host);
   gpr_free(port);
diff --git a/src/core/client_config/resolvers/sockaddr_resolver.c b/src/core/client_config/resolvers/sockaddr_resolver.c
index 74584e7e2c6b7c08ca53c40568079eeef6d6feb5..84198739081e4bbb2209c234aed6a2fa5e7e355d 100644
--- a/src/core/client_config/resolvers/sockaddr_resolver.c
+++ b/src/core/client_config/resolvers/sockaddr_resolver.c
@@ -60,9 +60,12 @@ typedef struct {
   grpc_lb_policy *(*lb_policy_factory)(grpc_subchannel **subchannels,
                                        size_t num_subchannels);
 
-  /** the address that we've 'resolved' */
-  struct sockaddr_storage addr;
-  int addr_len;
+  /** the addresses that we've 'resolved' */
+  struct sockaddr_storage *addrs;
+  /** the corresponding length of the addresses */
+  int *addrs_len;
+  /** how many elements in \a addrs */
+  size_t num_addrs;
 
   /** mutex guarding the rest of the state */
   gpr_mu mu;
@@ -119,17 +122,22 @@ static void sockaddr_next(grpc_resolver *resolver,
 static void sockaddr_maybe_finish_next_locked(sockaddr_resolver *r) {
   grpc_client_config *cfg;
   grpc_lb_policy *lb_policy;
-  grpc_subchannel *subchannel;
+  grpc_subchannel **subchannels;
   grpc_subchannel_args args;
 
   if (r->next_completion != NULL && !r->published) {
+    size_t i;
     cfg = grpc_client_config_create();
-    memset(&args, 0, sizeof(args));
-    args.addr = (struct sockaddr *)&r->addr;
-    args.addr_len = r->addr_len;
-    subchannel =
-        grpc_subchannel_factory_create_subchannel(r->subchannel_factory, &args);
-    lb_policy = r->lb_policy_factory(&subchannel, 1);
+    subchannels = gpr_malloc(sizeof(grpc_subchannel *) * r->num_addrs);
+    for (i = 0; i < r->num_addrs; i++) {
+      memset(&args, 0, sizeof(args));
+      args.addr = (struct sockaddr *)&r->addrs[i];
+      args.addr_len = r->addrs_len[i];
+      subchannels[i] = grpc_subchannel_factory_create_subchannel(
+          r->subchannel_factory, &args);
+    }
+    lb_policy = r->lb_policy_factory(subchannels, r->num_addrs);
+    gpr_free(subchannels);
     grpc_client_config_set_lb_policy(cfg, lb_policy);
     GRPC_LB_POLICY_UNREF(lb_policy, "unix");
     r->published = 1;
@@ -143,6 +151,8 @@ static void sockaddr_destroy(grpc_resolver *gr) {
   sockaddr_resolver *r = (sockaddr_resolver *)gr;
   gpr_mu_destroy(&r->mu);
   grpc_subchannel_factory_unref(r->subchannel_factory);
+  gpr_free(r->addrs);
+  gpr_free(r->addrs_len);
   gpr_free(r);
 }
 
@@ -238,13 +248,18 @@ done:
   return result;
 }
 
+static void do_nothing(void *ignored) {}
 static grpc_resolver *sockaddr_create(
     grpc_uri *uri,
     grpc_lb_policy *(*lb_policy_factory)(grpc_subchannel **subchannels,
                                          size_t num_subchannels),
     grpc_subchannel_factory *subchannel_factory,
     int parse(grpc_uri *uri, struct sockaddr_storage *dst, int *len)) {
+  size_t i;
+  int errors_found = 0; /* GPR_FALSE */
   sockaddr_resolver *r;
+  gpr_slice path_slice;
+  gpr_slice_buffer path_parts;
 
   if (0 != strcmp(uri->authority, "")) {
     gpr_log(GPR_ERROR, "authority based uri's not supported");
@@ -253,7 +268,29 @@ static grpc_resolver *sockaddr_create(
 
   r = gpr_malloc(sizeof(sockaddr_resolver));
   memset(r, 0, sizeof(*r));
-  if (!parse(uri, &r->addr, &r->addr_len)) {
+
+  path_slice = gpr_slice_new(uri->path, strlen(uri->path), do_nothing);
+  gpr_slice_buffer_init(&path_parts);
+
+  gpr_slice_split(path_slice, ",", &path_parts);
+  r->num_addrs = path_parts.count;
+  r->addrs = gpr_malloc(sizeof(struct sockaddr_storage) * r->num_addrs);
+  r->addrs_len = gpr_malloc(sizeof(int) * r->num_addrs);
+
+  for(i = 0; i < r->num_addrs; i++) {
+    grpc_uri ith_uri = *uri;
+    char* part_str = gpr_dump_slice(path_parts.slices[i], GPR_DUMP_ASCII);
+    ith_uri.path = part_str;
+    if (!parse(&ith_uri, &r->addrs[i], &r->addrs_len[i])) {
+      errors_found = 1; /* GPR_TRUE */
+    }
+    gpr_free(part_str);
+    if (errors_found) break;
+  }
+
+  gpr_slice_buffer_destroy(&path_parts);
+  gpr_slice_unref(path_slice);
+  if (errors_found) {
     gpr_free(r);
     return NULL;
   }
diff --git a/src/core/client_config/resolvers/zookeeper_resolver.c b/src/core/client_config/resolvers/zookeeper_resolver.c
index a8397a3da1c8929e61fd31d8cb7c04f9995663ed..acb2ba136e96431ca17d45f40a142933ccda97d9 100644
--- a/src/core/client_config/resolvers/zookeeper_resolver.c
+++ b/src/core/client_config/resolvers/zookeeper_resolver.c
@@ -142,7 +142,7 @@ static void zookeeper_next(grpc_resolver *resolver,
   gpr_mu_unlock(&r->mu);
 }
 
-/** Zookeeper global watcher for connection management 
+/** Zookeeper global watcher for connection management
     TODO: better connection management besides logs */
 static void zookeeper_global_watcher(zhandle_t *zookeeper_handle, int type,
                                      int state, const char *path,
@@ -172,7 +172,7 @@ static void zookeeper_watcher(zhandle_t *zookeeper_handle, int type, int state,
   }
 }
 
-/** Callback function after getting all resolved addresses  
+/** Callback function after getting all resolved addresses
     Creates a subchannel for each address */
 static void zookeeper_on_resolved(void *arg,
                                   grpc_resolved_addresses *addresses) {
@@ -249,7 +249,7 @@ static char *zookeeper_parse_address(const char *value, int value_len) {
   grpc_json *cur;
   const char *host;
   const char *port;
-  char* buffer;
+  char *buffer;
   char *address = NULL;
 
   buffer = gpr_malloc(value_len);
@@ -449,7 +449,7 @@ static grpc_resolver *zookeeper_create(
   gpr_mu_init(&r->mu);
   grpc_resolver_init(&r->base, &zookeeper_resolver_vtable);
   r->name = gpr_strdup(path);
-  
+
   r->subchannel_factory = subchannel_factory;
   r->lb_policy_factory = lb_policy_factory;
   grpc_subchannel_factory_ref(subchannel_factory);
diff --git a/src/core/client_config/subchannel.h b/src/core/client_config/subchannel.h
index d1cd33b2afb80561c5167cafc19371338953e38a..2e36c69134a8f0c1eb758e1f10dbff0420d5f223 100644
--- a/src/core/client_config/subchannel.h
+++ b/src/core/client_config/subchannel.h
@@ -91,8 +91,10 @@ void grpc_subchannel_notify_on_state_change(grpc_subchannel *channel,
                                             grpc_connectivity_state *state,
                                             grpc_iomgr_closure *notify);
 
+/** express interest in \a channel's activities through \a pollset. */
 void grpc_subchannel_add_interested_party(grpc_subchannel *channel,
                                           grpc_pollset *pollset);
+/** stop following \a channel's activity through \a pollset. */
 void grpc_subchannel_del_interested_party(grpc_subchannel *channel,
                                           grpc_pollset *pollset);
 
diff --git a/src/core/client_config/subchannel_factory_decorators/add_channel_arg.c b/src/core/client_config/subchannel_factory_decorators/add_channel_arg.c
index 7dc6d99ebe2efbf02a97027264e3a2902525d776..585e465fa49eb7cea89e456ac5226b598eb1ba02 100644
--- a/src/core/client_config/subchannel_factory_decorators/add_channel_arg.c
+++ b/src/core/client_config/subchannel_factory_decorators/add_channel_arg.c
@@ -35,9 +35,9 @@
 #include "src/core/client_config/subchannel_factory_decorators/merge_channel_args.h"
 
 grpc_subchannel_factory *grpc_subchannel_factory_add_channel_arg(
-		grpc_subchannel_factory *input, const grpc_arg *arg) {
-	grpc_channel_args args;
-	args.num_args = 1;
-	args.args = (grpc_arg *)arg;
-	return grpc_subchannel_factory_merge_channel_args(input, &args);
+    grpc_subchannel_factory *input, const grpc_arg *arg) {
+  grpc_channel_args args;
+  args.num_args = 1;
+  args.args = (grpc_arg *)arg;
+  return grpc_subchannel_factory_merge_channel_args(input, &args);
 }
diff --git a/src/core/client_config/subchannel_factory_decorators/add_channel_arg.h b/src/core/client_config/subchannel_factory_decorators/add_channel_arg.h
index 193762337474630a396bf9496860eac86d01ed52..8457294000d18cb5868bbe8e7e30ccdc2bd8d427 100644
--- a/src/core/client_config/subchannel_factory_decorators/add_channel_arg.h
+++ b/src/core/client_config/subchannel_factory_decorators/add_channel_arg.h
@@ -40,6 +40,7 @@
     channel_args by adding a new argument; ownership of input, arg is retained
     by the caller. */
 grpc_subchannel_factory *grpc_subchannel_factory_add_channel_arg(
-		grpc_subchannel_factory *input, const grpc_arg *arg);
+    grpc_subchannel_factory *input, const grpc_arg *arg);
 
-#endif /* GRPC_INTERNAL_CORE_CLIENT_CONFIG_SUBCHANNEL_FACTORY_DECORATORS_ADD_CHANNEL_ARG_H */
+#endif /* GRPC_INTERNAL_CORE_CLIENT_CONFIG_SUBCHANNEL_FACTORY_DECORATORS_ADD_CHANNEL_ARG_H \
+          */
diff --git a/src/core/client_config/subchannel_factory_decorators/merge_channel_args.c b/src/core/client_config/subchannel_factory_decorators/merge_channel_args.c
index 7e028857ac3d399a834bafb71e9e996e067c7801..c1b5507fde715b8c37eea84014742d1e14505d7c 100644
--- a/src/core/client_config/subchannel_factory_decorators/merge_channel_args.c
+++ b/src/core/client_config/subchannel_factory_decorators/merge_channel_args.c
@@ -50,7 +50,7 @@ static void merge_args_factory_ref(grpc_subchannel_factory *scf) {
 static void merge_args_factory_unref(grpc_subchannel_factory *scf) {
   merge_args_factory *f = (merge_args_factory *)scf;
   if (gpr_unref(&f->refs)) {
-  	grpc_subchannel_factory_unref(f->wrapped);
+    grpc_subchannel_factory_unref(f->wrapped);
     grpc_channel_args_destroy(f->merge_args);
     gpr_free(f);
   }
@@ -73,7 +73,7 @@ static const grpc_subchannel_factory_vtable merge_args_factory_vtable = {
     merge_args_factory_create_subchannel};
 
 grpc_subchannel_factory *grpc_subchannel_factory_merge_channel_args(
-		grpc_subchannel_factory *input, const grpc_channel_args *args) {
+    grpc_subchannel_factory *input, const grpc_channel_args *args) {
   merge_args_factory *f = gpr_malloc(sizeof(*f));
   f->base.vtable = &merge_args_factory_vtable;
   gpr_ref_init(&f->refs, 1);
diff --git a/src/core/client_config/subchannel_factory_decorators/merge_channel_args.h b/src/core/client_config/subchannel_factory_decorators/merge_channel_args.h
index 73a03b752f97881853f8aa2724cad30d4dad6594..f4757f065075925cf013ba101cbc192c1d9a158b 100644
--- a/src/core/client_config/subchannel_factory_decorators/merge_channel_args.h
+++ b/src/core/client_config/subchannel_factory_decorators/merge_channel_args.h
@@ -40,6 +40,7 @@
     channel_args by adding a new argument; ownership of input, args is retained
     by the caller. */
 grpc_subchannel_factory *grpc_subchannel_factory_merge_channel_args(
-		grpc_subchannel_factory *input, const grpc_channel_args *args);
+    grpc_subchannel_factory *input, const grpc_channel_args *args);
 
-#endif /* GRPC_INTERNAL_CORE_CLIENT_CONFIG_SUBCHANNEL_FACTORY_DECORATORS_MERGE_CHANNEL_ARGS_H */
+#endif /* GRPC_INTERNAL_CORE_CLIENT_CONFIG_SUBCHANNEL_FACTORY_DECORATORS_MERGE_CHANNEL_ARGS_H \
+          */
diff --git a/src/core/compression/algorithm.c b/src/core/compression/algorithm.c
index 0fd028741e5ee0bf1062b5d5c8cdeace28026d51..6ed6dbe93f26dbbf1b41561f154b8ea493f7b638 100644
--- a/src/core/compression/algorithm.c
+++ b/src/core/compression/algorithm.c
@@ -35,13 +35,20 @@
 #include <string.h>
 #include <grpc/compression.h>
 
-int grpc_compression_algorithm_parse(const char* name,
+int grpc_compression_algorithm_parse(const char *name, size_t name_length,
                                      grpc_compression_algorithm *algorithm) {
-  if (strcmp(name, "identity") == 0) {
+  /* we use strncmp not only because it's safer (even though in this case it
+   * doesn't matter, given that we are comparing against string literals, but
+   * because this way we needn't have "name" nil-terminated (useful for slice
+   * data, for example) */
+  if (name_length == 0) {
+    return 0;
+  }
+  if (strncmp(name, "identity", name_length) == 0) {
     *algorithm = GRPC_COMPRESS_NONE;
-  } else if (strcmp(name, "gzip") == 0) {
+  } else if (strncmp(name, "gzip", name_length) == 0) {
     *algorithm = GRPC_COMPRESS_GZIP;
-  } else if (strcmp(name, "deflate") == 0) {
+  } else if (strncmp(name, "deflate", name_length) == 0) {
     *algorithm = GRPC_COMPRESS_DEFLATE;
   } else {
     return 0;
diff --git a/src/core/debug/trace.c b/src/core/debug/trace.c
index b53dfe804bb33ea7ddf1d49202ecc9133ee87716..1014b1f4db6ed8e2e5b6a447e20c1733d880e39f 100644
--- a/src/core/debug/trace.c
+++ b/src/core/debug/trace.c
@@ -61,8 +61,8 @@ static void add(const char *beg, const char *end, char ***ss, size_t *ns) {
   size_t np = n + 1;
   char *s = gpr_malloc(end - beg + 1);
   memcpy(s, beg, end - beg);
-  s[end-beg] = 0;
-  *ss = gpr_realloc(*ss, sizeof(char**) * np);
+  s[end - beg] = 0;
+  *ss = gpr_realloc(*ss, sizeof(char **) * np);
   (*ss)[n] = s;
   *ns = np;
 }
@@ -73,7 +73,7 @@ static void split(const char *s, char ***ss, size_t *ns) {
     add(s, s + strlen(s), ss, ns);
   } else {
     add(s, c, ss, ns);
-    split(c+1, ss, ns);
+    split(c + 1, ss, ns);
   }
 }
 
@@ -125,7 +125,7 @@ int grpc_tracer_set_enabled(const char *name, int enabled) {
     }
     if (!found) {
       gpr_log(GPR_ERROR, "Unknown trace var: '%s'", name);
-      return 0;  /* early return */
+      return 0; /* early return */
     }
   }
   return 1;
diff --git a/src/core/debug/trace.h b/src/core/debug/trace.h
index fc8615bc693ded17fc7770ed24b438eeba3d2588..dc5875976e2595b84ceab5823055872852ead19f 100644
--- a/src/core/debug/trace.h
+++ b/src/core/debug/trace.h
@@ -40,4 +40,4 @@ void grpc_register_tracer(const char *name, int *flag);
 void grpc_tracer_init(const char *env_var_name);
 void grpc_tracer_shutdown(void);
 
-#endif  /* GRPC_INTERNAL_CORE_DEBUG_TRACE_H */
+#endif /* GRPC_INTERNAL_CORE_DEBUG_TRACE_H */
diff --git a/src/core/httpcli/format_request.c b/src/core/httpcli/format_request.c
index e875423e87cd97130cdd0ede028e58c875f884d6..6189fce86b4572aeffce6aff22f9a0733835d1ce 100644
--- a/src/core/httpcli/format_request.c
+++ b/src/core/httpcli/format_request.c
@@ -43,7 +43,8 @@
 #include <grpc/support/string_util.h>
 #include <grpc/support/useful.h>
 
-static void fill_common_header(const grpc_httpcli_request *request, gpr_strvec *buf) {
+static void fill_common_header(const grpc_httpcli_request *request,
+                               gpr_strvec *buf) {
   size_t i;
   gpr_strvec_add(buf, gpr_strdup(request->path));
   gpr_strvec_add(buf, gpr_strdup(" HTTP/1.0\r\n"));
@@ -52,7 +53,8 @@ static void fill_common_header(const grpc_httpcli_request *request, gpr_strvec *
   gpr_strvec_add(buf, gpr_strdup(request->host));
   gpr_strvec_add(buf, gpr_strdup("\r\n"));
   gpr_strvec_add(buf, gpr_strdup("Connection: close\r\n"));
-  gpr_strvec_add(buf, gpr_strdup("User-Agent: "GRPC_HTTPCLI_USER_AGENT"\r\n"));
+  gpr_strvec_add(buf,
+                 gpr_strdup("User-Agent: " GRPC_HTTPCLI_USER_AGENT "\r\n"));
   /* user supplied headers */
   for (i = 0; i < request->hdr_count; i++) {
     gpr_strvec_add(buf, gpr_strdup(request->hdrs[i].key));
diff --git a/src/core/httpcli/format_request.h b/src/core/httpcli/format_request.h
index 8bfb20bfd0cb7d12afca99698f834a7d7bc2d1b3..c8dc8f7d4ee06f0553d80ae24df35c41720f92bd 100644
--- a/src/core/httpcli/format_request.h
+++ b/src/core/httpcli/format_request.h
@@ -42,4 +42,4 @@ gpr_slice grpc_httpcli_format_post_request(const grpc_httpcli_request *request,
                                            const char *body_bytes,
                                            size_t body_size);
 
-#endif  /* GRPC_INTERNAL_CORE_HTTPCLI_FORMAT_REQUEST_H */
+#endif /* GRPC_INTERNAL_CORE_HTTPCLI_FORMAT_REQUEST_H */
diff --git a/src/core/httpcli/parser.h b/src/core/httpcli/parser.h
index 71280e74794f9a52c620d0f8718fb9c2bae6bb0a..3fbb4c7479e64c89b94609af0635fe7327a1b2ff 100644
--- a/src/core/httpcli/parser.h
+++ b/src/core/httpcli/parser.h
@@ -61,4 +61,4 @@ void grpc_httpcli_parser_destroy(grpc_httpcli_parser *parser);
 int grpc_httpcli_parser_parse(grpc_httpcli_parser *parser, gpr_slice slice);
 int grpc_httpcli_parser_eof(grpc_httpcli_parser *parser);
 
-#endif  /* GRPC_INTERNAL_CORE_HTTPCLI_PARSER_H */
+#endif /* GRPC_INTERNAL_CORE_HTTPCLI_PARSER_H */
diff --git a/src/core/iomgr/alarm.c b/src/core/iomgr/alarm.c
index 68d33b9cf606d52cd41b37b10e311fc1d6541487..ddb30dc4bba754137714f108651581dc1171eedd 100644
--- a/src/core/iomgr/alarm.c
+++ b/src/core/iomgr/alarm.c
@@ -105,8 +105,7 @@ void grpc_alarm_list_init(gpr_timespec now) {
 
 void grpc_alarm_list_shutdown(void) {
   int i;
-  while (run_some_expired_alarms(NULL, gpr_inf_future(g_clock_type), NULL,
-                                 0))
+  while (run_some_expired_alarms(NULL, gpr_inf_future(g_clock_type), NULL, 0))
     ;
   for (i = 0; i < NUM_SHARDS; i++) {
     shard_type *shard = &g_shards[i];
@@ -362,7 +361,7 @@ static int run_some_expired_alarms(gpr_mu *drop_mu, gpr_timespec now,
 int grpc_alarm_check(gpr_mu *drop_mu, gpr_timespec now, gpr_timespec *next) {
   GPR_ASSERT(now.clock_type == g_clock_type);
   return run_some_expired_alarms(
-      drop_mu, now, next, 
+      drop_mu, now, next,
       gpr_time_cmp(now, gpr_inf_future(now.clock_type)) != 0);
 }
 
diff --git a/src/core/iomgr/alarm.h b/src/core/iomgr/alarm.h
index c067a0b8a3ea2c35331e58642dd5ea53aab8fec4..4a13527e64ab10abb72b129159ea1027e9a625b1 100644
--- a/src/core/iomgr/alarm.h
+++ b/src/core/iomgr/alarm.h
@@ -86,4 +86,4 @@ void grpc_alarm_init(grpc_alarm *alarm, gpr_timespec deadline,
    Requires:  cancel() must happen after add() on a given alarm */
 void grpc_alarm_cancel(grpc_alarm *alarm);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_ALARM_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_ALARM_H */
diff --git a/src/core/iomgr/alarm_heap.c b/src/core/iomgr/alarm_heap.c
index d912178fda34d044d44f8944f4ba9f670f76a3f9..daed251982ac6374ff2cc0ccec93d2b5d83e20b4 100644
--- a/src/core/iomgr/alarm_heap.c
+++ b/src/core/iomgr/alarm_heap.c
@@ -66,11 +66,11 @@ static void adjust_downwards(grpc_alarm **first, int i, int length,
     int next_i;
     if (left_child >= length) break;
     right_child = left_child + 1;
-    next_i =
-        right_child < length && gpr_time_cmp(first[left_child]->deadline,
-                                             first[right_child]->deadline) < 0
-            ? right_child
-            : left_child;
+    next_i = right_child < length &&
+                     gpr_time_cmp(first[left_child]->deadline,
+                                  first[right_child]->deadline) < 0
+                 ? right_child
+                 : left_child;
     if (gpr_time_cmp(t->deadline, first[next_i]->deadline) >= 0) break;
     first[i] = first[next_i];
     first[i]->heap_index = i;
diff --git a/src/core/iomgr/alarm_heap.h b/src/core/iomgr/alarm_heap.h
index c5adfc6d31e77aa2d352e75d0861b603c85578c9..60db6c991b6e77c3d45fd94823d36830e06bfc40 100644
--- a/src/core/iomgr/alarm_heap.h
+++ b/src/core/iomgr/alarm_heap.h
@@ -54,4 +54,4 @@ void grpc_alarm_heap_pop(grpc_alarm_heap *heap);
 
 int grpc_alarm_heap_is_empty(grpc_alarm_heap *heap);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_ALARM_HEAP_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_ALARM_HEAP_H */
diff --git a/src/core/iomgr/alarm_internal.h b/src/core/iomgr/alarm_internal.h
index 0268a01badffada695c058886e8d514749ef799a..e9f98a3444e500dec051d5e5848d07be526c4f4c 100644
--- a/src/core/iomgr/alarm_internal.h
+++ b/src/core/iomgr/alarm_internal.h
@@ -59,4 +59,4 @@ gpr_timespec grpc_alarm_list_next_timeout(void);
 
 void grpc_kick_poller(void);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_ALARM_INTERNAL_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_ALARM_INTERNAL_H */
diff --git a/src/core/iomgr/endpoint.c b/src/core/iomgr/endpoint.c
index 744fe7656c1c0f6d7d93581fd2fd578ad0493264..8ee14bce9b7ddae5da0f257afafd6bca90320b82 100644
--- a/src/core/iomgr/endpoint.c
+++ b/src/core/iomgr/endpoint.c
@@ -50,7 +50,8 @@ void grpc_endpoint_add_to_pollset(grpc_endpoint *ep, grpc_pollset *pollset) {
   ep->vtable->add_to_pollset(ep, pollset);
 }
 
-void grpc_endpoint_add_to_pollset_set(grpc_endpoint *ep, grpc_pollset_set *pollset_set) {
+void grpc_endpoint_add_to_pollset_set(grpc_endpoint *ep,
+                                      grpc_pollset_set *pollset_set) {
   ep->vtable->add_to_pollset_set(ep, pollset_set);
 }
 
diff --git a/src/core/iomgr/endpoint.h b/src/core/iomgr/endpoint.h
index a2216925f932699dd56662c92f512026fe3e24b5..ea92a500e84af31d28be8fa0b989f9b67f32d8b3 100644
--- a/src/core/iomgr/endpoint.h
+++ b/src/core/iomgr/endpoint.h
@@ -103,10 +103,11 @@ void grpc_endpoint_destroy(grpc_endpoint *ep);
 /* Add an endpoint to a pollset, so that when the pollset is polled, events from
    this endpoint are considered */
 void grpc_endpoint_add_to_pollset(grpc_endpoint *ep, grpc_pollset *pollset);
-void grpc_endpoint_add_to_pollset_set(grpc_endpoint *ep, grpc_pollset_set *pollset_set);
+void grpc_endpoint_add_to_pollset_set(grpc_endpoint *ep,
+                                      grpc_pollset_set *pollset_set);
 
 struct grpc_endpoint {
   const grpc_endpoint_vtable *vtable;
 };
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_ENDPOINT_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_ENDPOINT_H */
diff --git a/src/core/iomgr/endpoint_pair.h b/src/core/iomgr/endpoint_pair.h
index 25087be0c7e18eb783a853edc7032c6b762c18f0..095ec5fcc9fc3f75b3b7b42821c69541e47662ff 100644
--- a/src/core/iomgr/endpoint_pair.h
+++ b/src/core/iomgr/endpoint_pair.h
@@ -44,4 +44,4 @@ typedef struct {
 grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char *name,
                                                    size_t read_slice_size);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_ENDPOINT_PAIR_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_ENDPOINT_PAIR_H */
diff --git a/src/core/iomgr/endpoint_pair_windows.c b/src/core/iomgr/endpoint_pair_windows.c
index e8295df8b37acb72c2053a91c42671eee0657389..db9d092dcab6166ac8d3776b38410459446c3199 100644
--- a/src/core/iomgr/endpoint_pair_windows.c
+++ b/src/core/iomgr/endpoint_pair_windows.c
@@ -52,21 +52,26 @@ static void create_sockets(SOCKET sv[2]) {
   SOCKADDR_IN addr;
   int addr_len = sizeof(addr);
 
-  lst_sock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED);
+  lst_sock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0,
+                       WSA_FLAG_OVERLAPPED);
   GPR_ASSERT(lst_sock != INVALID_SOCKET);
 
   memset(&addr, 0, sizeof(addr));
   addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK);
   addr.sin_family = AF_INET;
-  GPR_ASSERT(bind(lst_sock, (struct sockaddr*)&addr, sizeof(addr)) != SOCKET_ERROR);
+  GPR_ASSERT(bind(lst_sock, (struct sockaddr *)&addr, sizeof(addr)) !=
+             SOCKET_ERROR);
   GPR_ASSERT(listen(lst_sock, SOMAXCONN) != SOCKET_ERROR);
-  GPR_ASSERT(getsockname(lst_sock, (struct sockaddr*)&addr, &addr_len) != SOCKET_ERROR);
+  GPR_ASSERT(getsockname(lst_sock, (struct sockaddr *)&addr, &addr_len) !=
+             SOCKET_ERROR);
 
-  cli_sock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0, WSA_FLAG_OVERLAPPED);
+  cli_sock = WSASocket(AF_INET, SOCK_STREAM, IPPROTO_TCP, NULL, 0,
+                       WSA_FLAG_OVERLAPPED);
   GPR_ASSERT(cli_sock != INVALID_SOCKET);
 
-  GPR_ASSERT(WSAConnect(cli_sock, (struct sockaddr*)&addr, addr_len, NULL, NULL, NULL, NULL) == 0);
-  svr_sock = accept(lst_sock, (struct sockaddr*)&addr, &addr_len);
+  GPR_ASSERT(WSAConnect(cli_sock, (struct sockaddr *)&addr, addr_len, NULL,
+                        NULL, NULL, NULL) == 0);
+  svr_sock = accept(lst_sock, (struct sockaddr *)&addr, &addr_len);
   GPR_ASSERT(svr_sock != INVALID_SOCKET);
 
   closesocket(lst_sock);
@@ -77,7 +82,8 @@ static void create_sockets(SOCKET sv[2]) {
   sv[0] = svr_sock;
 }
 
-grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char *name, size_t read_slice_size) {
+grpc_endpoint_pair grpc_iomgr_create_endpoint_pair(const char *name,
+                                                   size_t read_slice_size) {
   SOCKET sv[2];
   grpc_endpoint_pair p;
   create_sockets(sv);
diff --git a/src/core/iomgr/iocp_windows.c b/src/core/iomgr/iocp_windows.c
index 8741241fb8e19c804f0df9bc3d2c28173be5954c..09a457dd9af59f2b8300098930209abbeb51eab0 100644
--- a/src/core/iomgr/iocp_windows.c
+++ b/src/core/iomgr/iocp_windows.c
@@ -65,18 +65,17 @@ static void do_iocp_work() {
   LPOVERLAPPED overlapped;
   grpc_winsocket *socket;
   grpc_winsocket_callback_info *info;
-  void(*f)(void *, int) = NULL;
+  void (*f)(void *, int) = NULL;
   void *opaque = NULL;
-  success = GetQueuedCompletionStatus(g_iocp, &bytes,
-                                      &completion_key, &overlapped,
-                                      INFINITE);
+  success = GetQueuedCompletionStatus(g_iocp, &bytes, &completion_key,
+                                      &overlapped, INFINITE);
   /* success = 0 and overlapped = NULL means the deadline got attained.
      Which is impossible. since our wait time is +inf */
   GPR_ASSERT(success || overlapped);
   GPR_ASSERT(completion_key && overlapped);
   if (overlapped == &g_iocp_custom_overlap) {
     gpr_atm_full_fetch_add(&g_custom_events, -1);
-    if (completion_key == (ULONG_PTR) &g_iocp_kick_token) {
+    if (completion_key == (ULONG_PTR)&g_iocp_kick_token) {
       /* We were awoken from a kick. */
       return;
     }
@@ -84,7 +83,7 @@ static void do_iocp_work() {
     abort();
   }
 
-  socket = (grpc_winsocket*) completion_key;
+  socket = (grpc_winsocket *)completion_key;
   if (overlapped == &socket->write_info.overlapped) {
     info = &socket->write_info;
   } else if (overlapped == &socket->read_info.overlapped) {
@@ -121,8 +120,7 @@ static void do_iocp_work() {
 }
 
 static void iocp_loop(void *p) {
-  while (gpr_atm_acq_load(&g_orphans) ||
-         gpr_atm_acq_load(&g_custom_events) ||
+  while (gpr_atm_acq_load(&g_orphans) || gpr_atm_acq_load(&g_custom_events) ||
          !gpr_event_get(&g_shutdown_iocp)) {
     grpc_maybe_call_delayed_callbacks(NULL, 1);
     do_iocp_work();
@@ -134,8 +132,8 @@ static void iocp_loop(void *p) {
 void grpc_iocp_init(void) {
   gpr_thd_id id;
 
-  g_iocp = CreateIoCompletionPort(INVALID_HANDLE_VALUE,
-                                  NULL, (ULONG_PTR)NULL, 0);
+  g_iocp =
+      CreateIoCompletionPort(INVALID_HANDLE_VALUE, NULL, (ULONG_PTR)NULL, 0);
   GPR_ASSERT(g_iocp);
 
   gpr_event_init(&g_iocp_done);
@@ -147,8 +145,7 @@ void grpc_iocp_kick(void) {
   BOOL success;
 
   gpr_atm_full_fetch_add(&g_custom_events, 1);
-  success = PostQueuedCompletionStatus(g_iocp, 0,
-                                       (ULONG_PTR) &g_iocp_kick_token,
+  success = PostQueuedCompletionStatus(g_iocp, 0, (ULONG_PTR)&g_iocp_kick_token,
                                        &g_iocp_custom_overlap);
   GPR_ASSERT(success);
 }
@@ -165,8 +162,8 @@ void grpc_iocp_shutdown(void) {
 void grpc_iocp_add_socket(grpc_winsocket *socket) {
   HANDLE ret;
   if (socket->added_to_iocp) return;
-  ret = CreateIoCompletionPort((HANDLE)socket->socket,
-                               g_iocp, (gpr_uintptr) socket, 0);
+  ret = CreateIoCompletionPort((HANDLE)socket->socket, g_iocp,
+                               (gpr_uintptr)socket, 0);
   if (!ret) {
     char *utf8_message = gpr_format_message(WSAGetLastError());
     gpr_log(GPR_ERROR, "Unable to add socket to iocp: %s", utf8_message);
@@ -189,7 +186,7 @@ void grpc_iocp_socket_orphan(grpc_winsocket *socket) {
    the callback now.
    -) The IOCP hasn't completed yet, and we're queuing it for later. */
 static void socket_notify_on_iocp(grpc_winsocket *socket,
-                                  void(*cb)(void *, int), void *opaque,
+                                  void (*cb)(void *, int), void *opaque,
                                   grpc_winsocket_callback_info *info) {
   int run_now = 0;
   GPR_ASSERT(!info->cb);
@@ -206,13 +203,13 @@ static void socket_notify_on_iocp(grpc_winsocket *socket,
 }
 
 void grpc_socket_notify_on_write(grpc_winsocket *socket,
-                                 void(*cb)(void *, int), void *opaque) {
+                                 void (*cb)(void *, int), void *opaque) {
   socket_notify_on_iocp(socket, cb, opaque, &socket->write_info);
 }
 
-void grpc_socket_notify_on_read(grpc_winsocket *socket,
-                                void(*cb)(void *, int), void *opaque) {
+void grpc_socket_notify_on_read(grpc_winsocket *socket, void (*cb)(void *, int),
+                                void *opaque) {
   socket_notify_on_iocp(socket, cb, opaque, &socket->read_info);
 }
 
-#endif  /* GPR_WINSOCK_SOCKET */
+#endif /* GPR_WINSOCK_SOCKET */
diff --git a/src/core/iomgr/iocp_windows.h b/src/core/iomgr/iocp_windows.h
index 9df6476917fc9dc1883aeceb270c9497ad18250a..ee3847a2294e9e13cd7d50bbd1efc985e553ece4 100644
--- a/src/core/iomgr/iocp_windows.h
+++ b/src/core/iomgr/iocp_windows.h
@@ -44,10 +44,10 @@ void grpc_iocp_shutdown(void);
 void grpc_iocp_add_socket(grpc_winsocket *);
 void grpc_iocp_socket_orphan(grpc_winsocket *);
 
-void grpc_socket_notify_on_write(grpc_winsocket *, void(*cb)(void *, int success),
-                                 void *opaque);
+void grpc_socket_notify_on_write(grpc_winsocket *,
+                                 void (*cb)(void *, int success), void *opaque);
 
-void grpc_socket_notify_on_read(grpc_winsocket *, void(*cb)(void *, int success),
-                                void *opaque);
+void grpc_socket_notify_on_read(grpc_winsocket *,
+                                void (*cb)(void *, int success), void *opaque);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_IOCP_WINDOWS_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_IOCP_WINDOWS_H */
diff --git a/src/core/iomgr/iomgr.h b/src/core/iomgr/iomgr.h
index 6d4a82917b112f89b3d5ebbe62944eafd92b37d1..261c17366a354f85aade475b6f1b602eb72945be 100644
--- a/src/core/iomgr/iomgr.h
+++ b/src/core/iomgr/iomgr.h
@@ -77,4 +77,4 @@ void grpc_iomgr_add_callback(grpc_iomgr_closure *closure);
     argument. */
 void grpc_iomgr_add_delayed_callback(grpc_iomgr_closure *iocb, int success);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_IOMGR_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_IOMGR_H */
diff --git a/src/core/iomgr/iomgr_internal.h b/src/core/iomgr/iomgr_internal.h
index 6c1e0e1799e84c4c9c954a9e789f63fe809354b0..4cec973ba048075d4909d4470db5f64d568160c5 100644
--- a/src/core/iomgr/iomgr_internal.h
+++ b/src/core/iomgr/iomgr_internal.h
@@ -52,4 +52,4 @@ void grpc_iomgr_unregister_object(grpc_iomgr_object *obj);
 void grpc_iomgr_platform_init(void);
 void grpc_iomgr_platform_shutdown(void);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_IOMGR_INTERNAL_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_IOMGR_INTERNAL_H */
diff --git a/src/core/iomgr/iomgr_posix.c b/src/core/iomgr/iomgr_posix.c
index 758ae77b86404f5113142477e80f0a8f505b74be..2425e599415d292cbc47331f6a39b5c6526f7f00 100644
--- a/src/core/iomgr/iomgr_posix.c
+++ b/src/core/iomgr/iomgr_posix.c
@@ -51,4 +51,4 @@ void grpc_iomgr_platform_shutdown(void) {
   grpc_fd_global_shutdown();
 }
 
-#endif  /* GRPC_POSIX_SOCKET */
+#endif /* GRPC_POSIX_SOCKET */
diff --git a/src/core/iomgr/iomgr_posix.h b/src/core/iomgr/iomgr_posix.h
index a404f6433ec7160def21220569953e29f370f51b..716fedb63683bda32207cddaff44e73f6033ffd7 100644
--- a/src/core/iomgr/iomgr_posix.h
+++ b/src/core/iomgr/iomgr_posix.h
@@ -39,4 +39,4 @@
 void grpc_pollset_global_init(void);
 void grpc_pollset_global_shutdown(void);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_IOMGR_POSIX_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_IOMGR_POSIX_H */
diff --git a/src/core/iomgr/iomgr_windows.c b/src/core/iomgr/iomgr_windows.c
index 74cd5a829b28d4be850cbc50fadba9cb333d5d18..b49cb87e97b00bbb50ffc92eda3fe698b6db1f5f 100644
--- a/src/core/iomgr/iomgr_windows.c
+++ b/src/core/iomgr/iomgr_windows.c
@@ -68,4 +68,4 @@ void grpc_iomgr_platform_shutdown(void) {
   winsock_shutdown();
 }
 
-#endif  /* GRPC_WINSOCK_SOCKET */
+#endif /* GRPC_WINSOCK_SOCKET */
diff --git a/src/core/iomgr/pollset.h b/src/core/iomgr/pollset.h
index c474e4dbf1cdf6f5fb80189c2e14a45181780cb6..337596cb741e33cd1a449f3888626e9b0900d9ce 100644
--- a/src/core/iomgr/pollset.h
+++ b/src/core/iomgr/pollset.h
@@ -74,10 +74,9 @@ void grpc_pollset_destroy(grpc_pollset *pollset);
    grpc_pollset_work, and it is guaranteed that GRPC_POLLSET_MU(pollset) will
    not be released by grpc_pollset_work AFTER worker has been destroyed.
 
-   Returns true if some work has been done, and false if the deadline
-   expired. */
-int grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker *worker,
-                      gpr_timespec deadline);
+   Tries not to block past deadline. */
+void grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker *worker,
+                       gpr_timespec now, gpr_timespec deadline);
 
 /* Break one polling thread out of polling work for this pollset.
    If specific_worker is GRPC_POLLSET_KICK_BROADCAST, kick ALL the workers.
diff --git a/src/core/iomgr/pollset_multipoller_with_epoll.c b/src/core/iomgr/pollset_multipoller_with_epoll.c
index 1320c6457978523cd6855ab6c3f9491e479f6da5..fe66ebed77914c35113c75da8c7022630a86735e 100644
--- a/src/core/iomgr/pollset_multipoller_with_epoll.c
+++ b/src/core/iomgr/pollset_multipoller_with_epoll.c
@@ -181,7 +181,7 @@ static void multipoll_with_epoll_pollset_maybe_work(
   pfds[1].events = POLLIN;
   pfds[1].revents = 0;
 
-  poll_rv = poll(pfds, 2, timeout_ms);
+  poll_rv = grpc_poll_function(pfds, 2, timeout_ms);
 
   if (poll_rv < 0) {
     if (errno != EINTR) {
@@ -234,8 +234,7 @@ static void multipoll_with_epoll_pollset_destroy(grpc_pollset *pollset) {
 }
 
 static const grpc_pollset_vtable multipoll_with_epoll_pollset = {
-    multipoll_with_epoll_pollset_add_fd,
-    multipoll_with_epoll_pollset_del_fd,
+    multipoll_with_epoll_pollset_add_fd, multipoll_with_epoll_pollset_del_fd,
     multipoll_with_epoll_pollset_maybe_work,
     multipoll_with_epoll_pollset_finish_shutdown,
     multipoll_with_epoll_pollset_destroy};
diff --git a/src/core/iomgr/pollset_multipoller_with_poll_posix.c b/src/core/iomgr/pollset_multipoller_with_poll_posix.c
index b5b2d7534d8464e653e4e0cbebe5ff6b0a696928..30ee6e24db4132a23e11b13c3d6674df399b1c04 100644
--- a/src/core/iomgr/pollset_multipoller_with_poll_posix.c
+++ b/src/core/iomgr/pollset_multipoller_with_poll_posix.c
@@ -74,7 +74,7 @@ static void multipoll_with_poll_pollset_add_fd(grpc_pollset *pollset,
   }
   h->fds[h->fd_count++] = fd;
   GRPC_FD_REF(fd, "multipoller");
-exit:  
+exit:
   if (and_unlock_pollset) {
     gpr_mu_unlock(&pollset->mu);
   }
@@ -144,7 +144,7 @@ static void multipoll_with_poll_pollset_maybe_work(
                                         POLLOUT, &watchers[i]);
   }
 
-  r = poll(pfds, pfd_count, timeout);
+  r = grpc_poll_function(pfds, pfd_count, timeout);
 
   for (i = 1; i < pfd_count; i++) {
     grpc_fd_end_poll(&watchers[i], pfds[i].revents & POLLIN,
@@ -202,8 +202,7 @@ static void multipoll_with_poll_pollset_destroy(grpc_pollset *pollset) {
 }
 
 static const grpc_pollset_vtable multipoll_with_poll_pollset = {
-    multipoll_with_poll_pollset_add_fd,
-    multipoll_with_poll_pollset_del_fd,
+    multipoll_with_poll_pollset_add_fd, multipoll_with_poll_pollset_del_fd,
     multipoll_with_poll_pollset_maybe_work,
     multipoll_with_poll_pollset_finish_shutdown,
     multipoll_with_poll_pollset_destroy};
diff --git a/src/core/iomgr/pollset_posix.c b/src/core/iomgr/pollset_posix.c
index d3a9193af16e6b19985b0ef9063f3fe277df9b82..6bd1b61f242da62e67a2a2aa2a3702d2f3c2b871 100644
--- a/src/core/iomgr/pollset_posix.c
+++ b/src/core/iomgr/pollset_posix.c
@@ -38,7 +38,6 @@
 #include "src/core/iomgr/pollset_posix.h"
 
 #include <errno.h>
-#include <poll.h>
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
@@ -57,6 +56,8 @@
 GPR_TLS_DECL(g_current_thread_poller);
 GPR_TLS_DECL(g_current_thread_worker);
 
+grpc_poll_function_type grpc_poll_function = poll;
+
 static void remove_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
   worker->prev->next = worker->next;
   worker->next->prev = worker->prev;
@@ -89,6 +90,7 @@ static void push_front_worker(grpc_pollset *p, grpc_pollset_worker *worker) {
 }
 
 void grpc_pollset_kick(grpc_pollset *p, grpc_pollset_worker *specific_worker) {
+  /* pollset->mu already held */
   if (specific_worker != NULL) {
     if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
       for (specific_worker = p->root_worker.next;
@@ -140,10 +142,10 @@ void grpc_pollset_init(grpc_pollset *pollset) {
 void grpc_pollset_add_fd(grpc_pollset *pollset, grpc_fd *fd) {
   gpr_mu_lock(&pollset->mu);
   pollset->vtable->add_fd(pollset, fd, 1);
-  /* the following (enabled only in debug) will reacquire and then release
-     our lock - meaning that if the unlocking flag passed to del_fd above is
-     not respected, the code will deadlock (in a way that we have a chance of
-     debugging) */
+/* the following (enabled only in debug) will reacquire and then release
+   our lock - meaning that if the unlocking flag passed to del_fd above is
+   not respected, the code will deadlock (in a way that we have a chance of
+   debugging) */
 #ifndef NDEBUG
   gpr_mu_lock(&pollset->mu);
   gpr_mu_unlock(&pollset->mu);
@@ -153,10 +155,10 @@ void grpc_pollset_add_fd(grpc_pollset *pollset, grpc_fd *fd) {
 void grpc_pollset_del_fd(grpc_pollset *pollset, grpc_fd *fd) {
   gpr_mu_lock(&pollset->mu);
   pollset->vtable->del_fd(pollset, fd, 1);
-  /* the following (enabled only in debug) will reacquire and then release
-     our lock - meaning that if the unlocking flag passed to del_fd above is
-     not respected, the code will deadlock (in a way that we have a chance of
-     debugging) */
+/* the following (enabled only in debug) will reacquire and then release
+   our lock - meaning that if the unlocking flag passed to del_fd above is
+   not respected, the code will deadlock (in a way that we have a chance of
+   debugging) */
 #ifndef NDEBUG
   gpr_mu_lock(&pollset->mu);
   gpr_mu_unlock(&pollset->mu);
@@ -168,14 +170,10 @@ static void finish_shutdown(grpc_pollset *pollset) {
   pollset->shutdown_done_cb(pollset->shutdown_done_arg);
 }
 
-int grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker *worker,
-                      gpr_timespec deadline) {
+void grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker *worker,
+                       gpr_timespec now, gpr_timespec deadline) {
   /* pollset->mu already held */
-  gpr_timespec now = gpr_now(GPR_CLOCK_MONOTONIC);
   int added_worker = 0;
-  if (gpr_time_cmp(now, deadline) > 0) {
-    return 0;
-  }
   /* this must happen before we (potentially) drop pollset->mu */
   worker->next = worker->prev = NULL;
   /* TODO(ctiller): pool these */
@@ -217,7 +215,6 @@ done:
       gpr_mu_lock(&pollset->mu);
     }
   }
-  return 1;
 }
 
 void grpc_pollset_shutdown(grpc_pollset *pollset,
@@ -456,7 +453,7 @@ static void basic_pollset_maybe_work(grpc_pollset *pollset,
 
   /* poll fd count (argument 2) is shortened by one if we have no events
      to poll on - such that it only includes the kicker */
-  r = poll(pfd, nfds, timeout);
+  r = grpc_poll_function(pfd, nfds, timeout);
   GRPC_TIMER_MARK(GRPC_PTAG_POLL_FINISHED, r);
 
   if (fd) {
diff --git a/src/core/iomgr/pollset_posix.h b/src/core/iomgr/pollset_posix.h
index 1c1b736193c7e549cb3d37c398fba670c3d52d73..69bd9cca8ce02899d1c4d53ecd58f79d96298990 100644
--- a/src/core/iomgr/pollset_posix.h
+++ b/src/core/iomgr/pollset_posix.h
@@ -34,6 +34,8 @@
 #ifndef GRPC_INTERNAL_CORE_IOMGR_POLLSET_POSIX_H
 #define GRPC_INTERNAL_CORE_IOMGR_POLLSET_POSIX_H
 
+#include <poll.h>
+
 #include <grpc/support/sync.h>
 #include "src/core/iomgr/wakeup_fd_posix.h"
 
@@ -102,7 +104,8 @@ void grpc_kick_drain(grpc_pollset *p);
    - longer than a millisecond polls are rounded up to the next nearest
      millisecond to avoid spinning
    - infinite timeouts are converted to -1 */
-int grpc_poll_deadline_to_millis_timeout(gpr_timespec deadline, gpr_timespec now);
+int grpc_poll_deadline_to_millis_timeout(gpr_timespec deadline,
+                                         gpr_timespec now);
 
 /* turn a pollset into a multipoller: platform specific */
 typedef void (*grpc_platform_become_multipoller_type)(grpc_pollset *pollset,
@@ -117,4 +120,8 @@ void grpc_poll_become_multipoller(grpc_pollset *pollset, struct grpc_fd **fds,
  * be locked) */
 int grpc_pollset_has_workers(grpc_pollset *pollset);
 
+/* override to allow tests to hook poll() usage */
+typedef int (*grpc_poll_function_type)(struct pollfd *, nfds_t, int);
+extern grpc_poll_function_type grpc_poll_function;
+
 #endif /* GRPC_INTERNAL_CORE_IOMGR_POLLSET_POSIX_H */
diff --git a/src/core/iomgr/pollset_windows.c b/src/core/iomgr/pollset_windows.c
index 22dc5891c3811c1518aa0a6a17fcfc36e8235c0e..07522c8a0c3f0a8cb6760c6bc52e86b6f84391f3 100644
--- a/src/core/iomgr/pollset_windows.c
+++ b/src/core/iomgr/pollset_windows.c
@@ -56,8 +56,7 @@ static grpc_pollset_worker *pop_front_worker(grpc_pollset *p) {
     grpc_pollset_worker *w = p->root_worker.next;
     remove_worker(p, w);
     return w;
-  }
-  else {
+  } else {
     return NULL;
   }
 }
@@ -100,13 +99,9 @@ void grpc_pollset_destroy(grpc_pollset *pollset) {
   gpr_mu_destroy(&pollset->mu);
 }
 
-int grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker *worker, gpr_timespec deadline) {
-  gpr_timespec now;
+void grpc_pollset_work(grpc_pollset *pollset, grpc_pollset_worker *worker, 
+                       gpr_timespec now, gpr_timespec deadline) {
   int added_worker = 0;
-  now = gpr_now(GPR_CLOCK_MONOTONIC);
-  if (gpr_time_cmp(now, deadline) > 0) {
-    return 0 /* GPR_FALSE */;
-  }
   worker->next = worker->prev = NULL;
   gpr_cv_init(&worker->cv);
   if (grpc_maybe_call_delayed_callbacks(&pollset->mu, 1 /* GPR_TRUE */)) {
@@ -127,15 +122,14 @@ done:
   if (added_worker) {
     remove_worker(pollset, worker);
   }
-  return 1 /* GPR_TRUE */;
 }
 
 void grpc_pollset_kick(grpc_pollset *p, grpc_pollset_worker *specific_worker) {
   if (specific_worker != NULL) {
     if (specific_worker == GRPC_POLLSET_KICK_BROADCAST) {
       for (specific_worker = p->root_worker.next;
-        specific_worker != &p->root_worker;
-        specific_worker = specific_worker->next) {
+           specific_worker != &p->root_worker;
+           specific_worker = specific_worker->next) {
         gpr_cv_signal(&specific_worker->cv);
       }
       p->kicked_without_pollers = 1;
diff --git a/src/core/iomgr/resolve_address.h b/src/core/iomgr/resolve_address.h
index 8f1d7a22bb1aae39544fded0712256aa049da8d5..cc1bd428b07dbb3e907dbf23166b68a2a03a15f8 100644
--- a/src/core/iomgr/resolve_address.h
+++ b/src/core/iomgr/resolve_address.h
@@ -66,4 +66,4 @@ void grpc_resolved_addresses_destroy(grpc_resolved_addresses *addresses);
 grpc_resolved_addresses *grpc_blocking_resolve_address(
     const char *addr, const char *default_port);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_RESOLVE_ADDRESS_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_RESOLVE_ADDRESS_H */
diff --git a/src/core/iomgr/resolve_address_posix.c b/src/core/iomgr/resolve_address_posix.c
index dbf884c76957c6d64c377cb8f7cf69f266556472..ce6972b797c5fa4be166202bdd4216ef2e288207 100644
--- a/src/core/iomgr/resolve_address_posix.c
+++ b/src/core/iomgr/resolve_address_posix.c
@@ -105,10 +105,7 @@ grpc_resolved_addresses *grpc_blocking_resolve_address(
   s = getaddrinfo(host, port, &hints, &result);
   if (s != 0) {
     /* Retry if well-known service name is recognized */
-    char *svc[][2] = {
-      {"http", "80"},
-      {"https", "443"}
-    };
+    char *svc[][2] = {{"http", "80"}, {"https", "443"}};
     int i;
     for (i = 0; i < (int)(sizeof(svc) / sizeof(svc[0])); i++) {
       if (strcmp(port, svc[i][0]) == 0) {
diff --git a/src/core/iomgr/sockaddr.h b/src/core/iomgr/sockaddr.h
index 7528db73b8197473e8492622f6c6bc0a6abee780..e41e1ec6b48ed8edb4faa62f957ccaafc120e956 100644
--- a/src/core/iomgr/sockaddr.h
+++ b/src/core/iomgr/sockaddr.h
@@ -44,4 +44,4 @@
 #include "src/core/iomgr/sockaddr_posix.h"
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_H */
diff --git a/src/core/iomgr/sockaddr_posix.h b/src/core/iomgr/sockaddr_posix.h
index 2a3d932f7000d67287abcfe9a6dcef4ad7c93b49..388abb3306691526ecd732adad0bafaa0a9c7884 100644
--- a/src/core/iomgr/sockaddr_posix.h
+++ b/src/core/iomgr/sockaddr_posix.h
@@ -41,4 +41,4 @@
 #include <netdb.h>
 #include <unistd.h>
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_POSIX_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_POSIX_H */
diff --git a/src/core/iomgr/sockaddr_utils.c b/src/core/iomgr/sockaddr_utils.c
index 65ec1f94ac874234f06b57e8d83b4cca89639a1c..efdc48036549b39c00b7aada403ee8df18238e3d 100644
--- a/src/core/iomgr/sockaddr_utils.c
+++ b/src/core/iomgr/sockaddr_utils.c
@@ -206,7 +206,8 @@ int grpc_sockaddr_get_port(const struct sockaddr *addr) {
     case AF_UNIX:
       return 1;
     default:
-      gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port", addr->sa_family);
+      gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_get_port",
+              addr->sa_family);
       return 0;
   }
 }
@@ -220,7 +221,8 @@ int grpc_sockaddr_set_port(const struct sockaddr *addr, int port) {
       ((struct sockaddr_in6 *)addr)->sin6_port = htons(port);
       return 1;
     default:
-      gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_set_port", addr->sa_family);
+      gpr_log(GPR_ERROR, "Unknown socket family %d in grpc_sockaddr_set_port",
+              addr->sa_family);
       return 0;
   }
 }
diff --git a/src/core/iomgr/sockaddr_utils.h b/src/core/iomgr/sockaddr_utils.h
index 99f1ed54da112ff43d87718b07caab479e2f4c22..6f7a279900dff0af65508caface301a898cef550 100644
--- a/src/core/iomgr/sockaddr_utils.h
+++ b/src/core/iomgr/sockaddr_utils.h
@@ -86,4 +86,4 @@ int grpc_sockaddr_to_string(char **out, const struct sockaddr *addr,
 
 char *grpc_sockaddr_to_uri(const struct sockaddr *addr);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_UTILS_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_UTILS_H */
diff --git a/src/core/iomgr/sockaddr_win32.h b/src/core/iomgr/sockaddr_win32.h
index be55db805aaecb0ebf77ef80ad0cf51e2d93655f..fe2be99145478f1c9653bed020a96a1792b7fe95 100644
--- a/src/core/iomgr/sockaddr_win32.h
+++ b/src/core/iomgr/sockaddr_win32.h
@@ -43,4 +43,4 @@
 const char *inet_ntop(int af, const void *src, char *dst, socklen_t size);
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_WIN32_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_SOCKADDR_WIN32_H */
diff --git a/src/core/iomgr/socket_utils_posix.h b/src/core/iomgr/socket_utils_posix.h
index d2a315b462224f67579c28f4aecf2d79e85df4c5..d330d1986ebd546723922b3a81d681fe0f7e27aa 100644
--- a/src/core/iomgr/socket_utils_posix.h
+++ b/src/core/iomgr/socket_utils_posix.h
@@ -110,4 +110,4 @@ extern int grpc_forbid_dualstack_sockets_for_testing;
 int grpc_create_dualstack_socket(const struct sockaddr *addr, int type,
                                  int protocol, grpc_dualstack_mode *dsmode);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_SOCKET_UTILS_POSIX_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_SOCKET_UTILS_POSIX_H */
diff --git a/src/core/iomgr/socket_windows.c b/src/core/iomgr/socket_windows.c
index f6ddfff0ad9399696bc14750e2e422d7a383d319..7d8421376b129d4624c2e8acf7e99bf538d8cdf5 100644
--- a/src/core/iomgr/socket_windows.c
+++ b/src/core/iomgr/socket_windows.c
@@ -106,4 +106,4 @@ void grpc_winsocket_destroy(grpc_winsocket *winsocket) {
   gpr_free(winsocket);
 }
 
-#endif  /* GPR_WINSOCK_SOCKET */
+#endif /* GPR_WINSOCK_SOCKET */
diff --git a/src/core/iomgr/socket_windows.h b/src/core/iomgr/socket_windows.h
index 346fde8eddbf73efe204f8666157c6b13c8d62ff..ecf2530173c4c1cc2af0b2aefc91eb8b17969d51 100644
--- a/src/core/iomgr/socket_windows.h
+++ b/src/core/iomgr/socket_windows.h
@@ -54,7 +54,7 @@ typedef struct grpc_winsocket_callback_info {
   OVERLAPPED overlapped;
   /* The callback information for the pending operation. May be empty if the
      caller hasn't registered a callback yet. */
-  void(*cb)(void *opaque, int success);
+  void (*cb)(void *opaque, int success);
   void *opaque;
   /* A boolean to describe if the IO Completion Port got a notification for
      that operation. This will happen if the operation completed before the
@@ -118,4 +118,4 @@ void grpc_winsocket_orphan(grpc_winsocket *socket);
    or by grpc_winsocket_orphan if there's no pending operation. */
 void grpc_winsocket_destroy(grpc_winsocket *socket);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_SOCKET_WINDOWS_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_SOCKET_WINDOWS_H */
diff --git a/src/core/iomgr/tcp_client.h b/src/core/iomgr/tcp_client.h
index 0fa08b52b0d27c088661101ac21f3f02bcafaa4d..8ad9b818e1697556360567cea0680bfa6339dfbf 100644
--- a/src/core/iomgr/tcp_client.h
+++ b/src/core/iomgr/tcp_client.h
@@ -41,7 +41,7 @@
 
 /* Asynchronously connect to an address (specified as (addr, len)), and call
    cb with arg and the completed connection when done (or call cb with arg and
-   NULL on failure). 
+   NULL on failure).
    interested_parties points to a set of pollsets that would be interested
    in this connection being established (in order to continue their work) */
 void grpc_tcp_client_connect(void (*cb)(void *arg, grpc_endpoint *tcp),
diff --git a/src/core/iomgr/tcp_client_posix.c b/src/core/iomgr/tcp_client_posix.c
index 9572ce5980d7408ac760f49bdeaed0859f25ad31..66027f87a0dc7964150e0db6d6cd1da19b46af02 100644
--- a/src/core/iomgr/tcp_client_posix.c
+++ b/src/core/iomgr/tcp_client_posix.c
@@ -264,7 +264,8 @@ void grpc_tcp_client_connect(void (*cb)(void *arg, grpc_endpoint *ep),
   ac->write_closure.cb_arg = ac;
 
   gpr_mu_lock(&ac->mu);
-  grpc_alarm_init(&ac->alarm, gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC), 
+  grpc_alarm_init(&ac->alarm,
+                  gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC),
                   tc_on_alarm, ac, gpr_now(GPR_CLOCK_MONOTONIC));
   grpc_fd_notify_on_write(ac->fd, &ac->write_closure);
   gpr_mu_unlock(&ac->mu);
diff --git a/src/core/iomgr/tcp_posix.c b/src/core/iomgr/tcp_posix.c
index 24fee0596f54c5a8ab877c7ad70b1e58d1e9ae8a..360e6ebd8cf87ef4e829ebf3a2e9fc3062133bbe 100644
--- a/src/core/iomgr/tcp_posix.c
+++ b/src/core/iomgr/tcp_posix.c
@@ -572,7 +572,8 @@ static void grpc_tcp_add_to_pollset(grpc_endpoint *ep, grpc_pollset *pollset) {
   grpc_pollset_add_fd(pollset, tcp->em_fd);
 }
 
-static void grpc_tcp_add_to_pollset_set(grpc_endpoint *ep, grpc_pollset_set *pollset_set) {
+static void grpc_tcp_add_to_pollset_set(grpc_endpoint *ep,
+                                        grpc_pollset_set *pollset_set) {
   grpc_tcp *tcp = (grpc_tcp *)ep;
   grpc_pollset_set_add_fd(pollset_set, tcp->em_fd);
 }
diff --git a/src/core/iomgr/tcp_posix.h b/src/core/iomgr/tcp_posix.h
index d752feaeeabe19ad3cebc5453a8c156a53f8f47d..40b3ae267988d40a7e9926df8fb772eba56f2790 100644
--- a/src/core/iomgr/tcp_posix.h
+++ b/src/core/iomgr/tcp_posix.h
@@ -56,4 +56,4 @@ extern int grpc_tcp_trace;
 grpc_endpoint *grpc_tcp_create(grpc_fd *fd, size_t read_slice_size,
                                const char *peer_string);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_TCP_POSIX_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_TCP_POSIX_H */
diff --git a/src/core/iomgr/tcp_server_windows.c b/src/core/iomgr/tcp_server_windows.c
index 0adbe9507c72b67bfbf796c6046f12dbb6f9655d..d0478d36049f6a895058469ddfc15176b52f029a 100644
--- a/src/core/iomgr/tcp_server_windows.c
+++ b/src/core/iomgr/tcp_server_windows.c
@@ -79,7 +79,8 @@ struct grpc_tcp_server {
 
   /* active port count: how many ports are actually still listening */
   int active_ports;
-  /* number of iomgr callbacks that have been explicitly scheduled during shutdown */
+  /* number of iomgr callbacks that have been explicitly scheduled during
+   * shutdown */
   int iomgr_callbacks_pending;
 
   /* all listening ports */
@@ -292,7 +293,7 @@ static void on_accept(void *arg, int from_iocp) {
       and act accordingly. */
   transfered_bytes = 0;
   wsa_success = WSAGetOverlappedResult(sock, &info->overlapped,
-                                            &transfered_bytes, FALSE, &flags);
+                                       &transfered_bytes, FALSE, &flags);
   if (!wsa_success) {
     if (sp->shutting_down) {
       /* During the shutdown case, we ARE expecting an error. So that's well,
@@ -309,16 +310,15 @@ static void on_accept(void *arg, int from_iocp) {
     if (!sp->shutting_down) {
       peer_name_string = NULL;
       err = setsockopt(sock, SOL_SOCKET, SO_UPDATE_ACCEPT_CONTEXT,
-                       (char *)&sp->socket->socket,
-                       sizeof(sp->socket->socket));
+                       (char *)&sp->socket->socket, sizeof(sp->socket->socket));
       if (err) {
         char *utf8_message = gpr_format_message(WSAGetLastError());
         gpr_log(GPR_ERROR, "setsockopt error: %s", utf8_message);
         gpr_free(utf8_message);
       }
-      err = getpeername(sock, (struct sockaddr*)&peer_name, &peer_name_len);
+      err = getpeername(sock, (struct sockaddr *)&peer_name, &peer_name_len);
       if (!err) {
-        peer_name_string = grpc_sockaddr_to_uri((struct sockaddr*)&peer_name);
+        peer_name_string = grpc_sockaddr_to_uri((struct sockaddr *)&peer_name);
       } else {
         char *utf8_message = gpr_format_message(WSAGetLastError());
         gpr_log(GPR_ERROR, "getpeername error: %s", utf8_message);
diff --git a/src/core/iomgr/tcp_windows.c b/src/core/iomgr/tcp_windows.c
index 89aa741470cc0c2ff73d27d991ec004b73b7aef9..901793ec43bdec2346df0c1d7359f9c620b91376 100644
--- a/src/core/iomgr/tcp_windows.c
+++ b/src/core/iomgr/tcp_windows.c
@@ -55,24 +55,22 @@ static int set_non_block(SOCKET sock) {
   int status;
   unsigned long param = 1;
   DWORD ret;
-  status = WSAIoctl(sock, FIONBIO, &param, sizeof(param), NULL, 0, &ret,
-                    NULL, NULL);
+  status =
+      WSAIoctl(sock, FIONBIO, &param, sizeof(param), NULL, 0, &ret, NULL, NULL);
   return status == 0;
 }
 
 static int set_dualstack(SOCKET sock) {
   int status;
   unsigned long param = 0;
-  status = setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY,
-                      (const char *) &param, sizeof(param));
+  status = setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, (const char *)&param,
+                      sizeof(param));
   return status == 0;
 }
 
 int grpc_tcp_prepare_socket(SOCKET sock) {
-  if (!set_non_block(sock))
-    return 0;
-  if (!set_dualstack(sock))
-    return 0;
+  if (!set_non_block(sock)) return 0;
+  if (!set_dualstack(sock)) return 0;
   return 1;
 }
 
@@ -100,9 +98,7 @@ typedef struct grpc_tcp {
   char *peer_string;
 } grpc_tcp;
 
-static void tcp_ref(grpc_tcp *tcp) {
-  gpr_ref(&tcp->refcount);
-}
+static void tcp_ref(grpc_tcp *tcp) { gpr_ref(&tcp->refcount); }
 
 static void tcp_unref(grpc_tcp *tcp) {
   if (gpr_unref(&tcp->refcount)) {
@@ -116,7 +112,7 @@ static void tcp_unref(grpc_tcp *tcp) {
 
 /* Asynchronous callback from the IOCP, or the background thread. */
 static void on_read(void *tcpp, int from_iocp) {
-  grpc_tcp *tcp = (grpc_tcp *) tcpp;
+  grpc_tcp *tcp = (grpc_tcp *)tcpp;
   grpc_winsocket *socket = tcp->socket;
   gpr_slice sub;
   gpr_slice *slice = NULL;
@@ -156,6 +152,7 @@ static void on_read(void *tcpp, int from_iocp) {
       gpr_log(GPR_ERROR, "ReadFile overlapped error: %s", utf8_message);
       gpr_free(utf8_message);
     }
+    gpr_slice_unref(tcp->read_slice);
     status = GRPC_ENDPOINT_CB_ERROR;
   } else {
     if (info->bytes_transfered != 0) {
@@ -175,9 +172,9 @@ static void on_read(void *tcpp, int from_iocp) {
   cb(opaque, slice, nslices, status);
 }
 
-static void win_notify_on_read(grpc_endpoint *ep,
-                               grpc_endpoint_read_cb cb, void *arg) {
-  grpc_tcp *tcp = (grpc_tcp *) ep;
+static void win_notify_on_read(grpc_endpoint *ep, grpc_endpoint_read_cb cb,
+                               void *arg) {
+  grpc_tcp *tcp = (grpc_tcp *)ep;
   grpc_winsocket *handle = tcp->socket;
   grpc_winsocket_callback_info *info = &handle->read_info;
   int status;
@@ -201,8 +198,8 @@ static void win_notify_on_read(grpc_endpoint *ep,
   buffer.buf = (char *)GPR_SLICE_START_PTR(tcp->read_slice);
 
   /* First let's try a synchronous, non-blocking read. */
-  status = WSARecv(tcp->socket->socket, &buffer, 1, &bytes_read, &flags,
-                   NULL, NULL);
+  status =
+      WSARecv(tcp->socket->socket, &buffer, 1, &bytes_read, &flags, NULL, NULL);
   info->wsa_error = status == 0 ? 0 : WSAGetLastError();
 
   /* Did we get data immediately ? Yay. */
@@ -232,7 +229,7 @@ static void win_notify_on_read(grpc_endpoint *ep,
 
 /* Asynchronous callback from the IOCP, or the background thread. */
 static void on_write(void *tcpp, int from_iocp) {
-  grpc_tcp *tcp = (grpc_tcp *) tcpp;
+  grpc_tcp *tcp = (grpc_tcp *)tcpp;
   grpc_winsocket *handle = tcp->socket;
   grpc_winsocket_callback_info *info = &handle->write_info;
   grpc_endpoint_cb_status status = GRPC_ENDPOINT_CB_OK;
@@ -286,7 +283,7 @@ static grpc_endpoint_write_status win_write(grpc_endpoint *ep,
                                             gpr_slice *slices, size_t nslices,
                                             grpc_endpoint_write_cb cb,
                                             void *arg) {
-  grpc_tcp *tcp = (grpc_tcp *) ep;
+  grpc_tcp *tcp = (grpc_tcp *)ep;
   grpc_winsocket *socket = tcp->socket;
   grpc_winsocket_callback_info *info = &socket->write_info;
   unsigned i;
@@ -309,7 +306,7 @@ static grpc_endpoint_write_status win_write(grpc_endpoint *ep,
   gpr_slice_buffer_addn(&tcp->write_slices, slices, nslices);
 
   if (tcp->write_slices.count > GPR_ARRAY_SIZE(local_buffers)) {
-    buffers = (WSABUF *) gpr_malloc(sizeof(WSABUF) * tcp->write_slices.count);
+    buffers = (WSABUF *)gpr_malloc(sizeof(WSABUF) * tcp->write_slices.count);
     allocated = buffers;
   }
 
@@ -370,15 +367,15 @@ static grpc_endpoint_write_status win_write(grpc_endpoint *ep,
 
 static void win_add_to_pollset(grpc_endpoint *ep, grpc_pollset *ps) {
   grpc_tcp *tcp;
-  (void) ps;
-  tcp = (grpc_tcp *) ep;
+  (void)ps;
+  tcp = (grpc_tcp *)ep;
   grpc_iocp_add_socket(tcp->socket);
 }
 
 static void win_add_to_pollset_set(grpc_endpoint *ep, grpc_pollset_set *pss) {
   grpc_tcp *tcp;
-  (void) pss;
-  tcp = (grpc_tcp *) ep;
+  (void)pss;
+  tcp = (grpc_tcp *)ep;
   grpc_iocp_add_socket(tcp->socket);
 }
 
@@ -389,7 +386,7 @@ static void win_add_to_pollset_set(grpc_endpoint *ep, grpc_pollset_set *pss) {
    callback will happen from another thread, so we need to protect against
    concurrent access of the data structure in that regard. */
 static void win_shutdown(grpc_endpoint *ep) {
-  grpc_tcp *tcp = (grpc_tcp *) ep;
+  grpc_tcp *tcp = (grpc_tcp *)ep;
   int extra_refs = 0;
   gpr_mu_lock(&tcp->mu);
   /* At that point, what may happen is that we're already inside the IOCP
@@ -401,7 +398,7 @@ static void win_shutdown(grpc_endpoint *ep) {
 }
 
 static void win_destroy(grpc_endpoint *ep) {
-  grpc_tcp *tcp = (grpc_tcp *) ep;
+  grpc_tcp *tcp = (grpc_tcp *)ep;
   tcp_unref(tcp);
 }
 
@@ -410,13 +407,12 @@ static char *win_get_peer(grpc_endpoint *ep) {
   return gpr_strdup(tcp->peer_string);
 }
 
-static grpc_endpoint_vtable vtable = {win_notify_on_read, win_write,
-                                      win_add_to_pollset, win_add_to_pollset_set,
-                                      win_shutdown,       win_destroy,
-                                      win_get_peer};
+static grpc_endpoint_vtable vtable = {
+    win_notify_on_read, win_write,   win_add_to_pollset, win_add_to_pollset_set,
+    win_shutdown,       win_destroy, win_get_peer};
 
 grpc_endpoint *grpc_tcp_create(grpc_winsocket *socket, char *peer_string) {
-  grpc_tcp *tcp = (grpc_tcp *) gpr_malloc(sizeof(grpc_tcp));
+  grpc_tcp *tcp = (grpc_tcp *)gpr_malloc(sizeof(grpc_tcp));
   memset(tcp, 0, sizeof(grpc_tcp));
   tcp->base.vtable = &vtable;
   tcp->socket = socket;
@@ -427,4 +423,4 @@ grpc_endpoint *grpc_tcp_create(grpc_winsocket *socket, char *peer_string) {
   return &tcp->base;
 }
 
-#endif  /* GPR_WINSOCK_SOCKET */
+#endif /* GPR_WINSOCK_SOCKET */
diff --git a/src/core/iomgr/tcp_windows.h b/src/core/iomgr/tcp_windows.h
index 7e301db250be5528014e9a1f9d48f8538443dc3c..deb3e48293c6b3b917b50ddbc9beacbfc06d290a 100644
--- a/src/core/iomgr/tcp_windows.h
+++ b/src/core/iomgr/tcp_windows.h
@@ -54,4 +54,4 @@ grpc_endpoint *grpc_tcp_create(grpc_winsocket *socket, char *peer_string);
 
 int grpc_tcp_prepare_socket(SOCKET sock);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_TCP_WINDOWS_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_TCP_WINDOWS_H */
diff --git a/src/core/iomgr/time_averaged_stats.h b/src/core/iomgr/time_averaged_stats.h
index 13894b26408c9f5231df54a49048d03669a1244c..e6dec1b4cd6835fc08676dfe77d5b369ceab2a63 100644
--- a/src/core/iomgr/time_averaged_stats.h
+++ b/src/core/iomgr/time_averaged_stats.h
@@ -85,4 +85,4 @@ void grpc_time_averaged_stats_add_sample(grpc_time_averaged_stats *stats,
    value. */
 double grpc_time_averaged_stats_update_average(grpc_time_averaged_stats *stats);
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_TIME_AVERAGED_STATS_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_TIME_AVERAGED_STATS_H */
diff --git a/src/core/iomgr/udp_server.c b/src/core/iomgr/udp_server.c
index db0aef81207b5e5a9901d5228f478984cb2d81ad..6429c38b289a97bd34edf80bb567f77cc26c328b 100644
--- a/src/core/iomgr/udp_server.c
+++ b/src/core/iomgr/udp_server.c
@@ -232,11 +232,13 @@ static int prepare_socket(int fd, const struct sockaddr *addr, int addr_len) {
   }
 
   get_local_ip = 1;
-  rc = setsockopt(fd, IPPROTO_IP, IP_PKTINFO,
-                      &get_local_ip, sizeof(get_local_ip));
+  rc = setsockopt(fd, IPPROTO_IP, IP_PKTINFO, &get_local_ip,
+                  sizeof(get_local_ip));
   if (rc == 0 && addr->sa_family == AF_INET6) {
-    rc = setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO,
-                    &get_local_ip, sizeof(get_local_ip));
+#if !TARGET_OS_IPHONE
+    rc = setsockopt(fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &get_local_ip,
+                    sizeof(get_local_ip));
+#endif
   }
 
   if (bind(fd, addr, addr_len) < 0) {
@@ -317,8 +319,8 @@ static int add_socket_to_server(grpc_udp_server *s, int fd,
   return port;
 }
 
-int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr,
-                             int addr_len, grpc_udp_server_read_cb read_cb) {
+int grpc_udp_server_add_port(grpc_udp_server *s, const void *addr, int addr_len,
+                             grpc_udp_server_read_cb read_cb) {
   int allocated_port1 = -1;
   int allocated_port2 = -1;
   unsigned i;
diff --git a/src/core/iomgr/wakeup_fd_eventfd.c b/src/core/iomgr/wakeup_fd_eventfd.c
index 52912235f8e59b9396c908a52f6f3b71f06cdfff..08fdc74f172960126e3fe3c343a22c0d15638914 100644
--- a/src/core/iomgr/wakeup_fd_eventfd.c
+++ b/src/core/iomgr/wakeup_fd_eventfd.c
@@ -75,8 +75,7 @@ static int eventfd_check_availability(void) {
 }
 
 const grpc_wakeup_fd_vtable grpc_specialized_wakeup_fd_vtable = {
-  eventfd_create, eventfd_consume, eventfd_wakeup, eventfd_destroy,
-  eventfd_check_availability
-};
+    eventfd_create, eventfd_consume, eventfd_wakeup, eventfd_destroy,
+    eventfd_check_availability};
 
 #endif /* GPR_LINUX_EVENTFD */
diff --git a/src/core/iomgr/wakeup_fd_nospecial.c b/src/core/iomgr/wakeup_fd_nospecial.c
index c1038bf3792ca3cf9d3ddde4eaa2b7572a3ec2f2..78d763c103ad0343b8396ee39fe5ed31ecd9ee05 100644
--- a/src/core/iomgr/wakeup_fd_nospecial.c
+++ b/src/core/iomgr/wakeup_fd_nospecial.c
@@ -43,12 +43,9 @@
 #include "src/core/iomgr/wakeup_fd_posix.h"
 #include <stddef.h>
 
-static int check_availability_invalid(void) {
-  return 0;
-}
+static int check_availability_invalid(void) { return 0; }
 
 const grpc_wakeup_fd_vtable grpc_specialized_wakeup_fd_vtable = {
-  NULL, NULL, NULL, NULL, check_availability_invalid
-};
+    NULL, NULL, NULL, NULL, check_availability_invalid};
 
-#endif  /* GPR_POSIX_NO_SPECIAL_WAKEUP_FD */
+#endif /* GPR_POSIX_NO_SPECIAL_WAKEUP_FD */
diff --git a/src/core/iomgr/wakeup_fd_pipe.c b/src/core/iomgr/wakeup_fd_pipe.c
index 9fc4ee2388fbba10845f6c93a651c44193dfca4f..bd643e80619774046333415417433b0046591423 100644
--- a/src/core/iomgr/wakeup_fd_pipe.c
+++ b/src/core/iomgr/wakeup_fd_pipe.c
@@ -94,4 +94,4 @@ const grpc_wakeup_fd_vtable grpc_pipe_wakeup_fd_vtable = {
     pipe_init, pipe_consume, pipe_wakeup, pipe_destroy,
     pipe_check_availability};
 
-#endif  /* GPR_POSIX_WAKUP_FD */
+#endif /* GPR_POSIX_WAKUP_FD */
diff --git a/src/core/iomgr/wakeup_fd_pipe.h b/src/core/iomgr/wakeup_fd_pipe.h
index aa8f977ddb8c3ff494d064d2a26af0df89bd8fe8..01a13a97c036e362e3f33791216f427bb56af388 100644
--- a/src/core/iomgr/wakeup_fd_pipe.h
+++ b/src/core/iomgr/wakeup_fd_pipe.h
@@ -38,4 +38,4 @@
 
 extern grpc_wakeup_fd_vtable grpc_pipe_wakeup_fd_vtable;
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_WAKEUP_FD_PIPE_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_WAKEUP_FD_PIPE_H */
diff --git a/src/core/iomgr/wakeup_fd_posix.c b/src/core/iomgr/wakeup_fd_posix.c
index e48f5223fad785302c69aac86a4e87d9a4a529fc..d09fb78d123b04b752a4b716dc48f906419d32a3 100644
--- a/src/core/iomgr/wakeup_fd_posix.c
+++ b/src/core/iomgr/wakeup_fd_posix.c
@@ -53,9 +53,7 @@ void grpc_wakeup_fd_global_init_force_fallback(void) {
   wakeup_fd_vtable = &grpc_pipe_wakeup_fd_vtable;
 }
 
-void grpc_wakeup_fd_global_destroy(void) {
-  wakeup_fd_vtable = NULL;
-}
+void grpc_wakeup_fd_global_destroy(void) { wakeup_fd_vtable = NULL; }
 
 void grpc_wakeup_fd_init(grpc_wakeup_fd *fd_info) {
   wakeup_fd_vtable->init(fd_info);
@@ -73,4 +71,4 @@ void grpc_wakeup_fd_destroy(grpc_wakeup_fd *fd_info) {
   wakeup_fd_vtable->destroy(fd_info);
 }
 
-#endif  /* GPR_POSIX_WAKEUP_FD */
+#endif /* GPR_POSIX_WAKEUP_FD */
diff --git a/src/core/iomgr/wakeup_fd_posix.h b/src/core/iomgr/wakeup_fd_posix.h
index a4da4df51f8aada5ee01d7956ad6c54e5fc720e7..b6c086900d5521114519cfb2997a7cbe7ef463f2 100644
--- a/src/core/iomgr/wakeup_fd_posix.h
+++ b/src/core/iomgr/wakeup_fd_posix.h
@@ -96,4 +96,4 @@ void grpc_wakeup_fd_destroy(grpc_wakeup_fd *fd_info);
  * wakeup_fd_nospecial.c if no such implementation exists. */
 extern const grpc_wakeup_fd_vtable grpc_specialized_wakeup_fd_vtable;
 
-#endif  /* GRPC_INTERNAL_CORE_IOMGR_WAKEUP_FD_POSIX_H */
+#endif /* GRPC_INTERNAL_CORE_IOMGR_WAKEUP_FD_POSIX_H */
diff --git a/src/core/json/json.h b/src/core/json/json.h
index cac18ad885498383fbed5dcf5b030b2d01123246..573584bf6fbcd23ae0f46414185cd69357d070be 100644
--- a/src/core/json/json.h
+++ b/src/core/json/json.h
@@ -85,4 +85,4 @@ char* grpc_json_dump_to_string(grpc_json* json, int indent);
 grpc_json* grpc_json_create(grpc_json_type type);
 void grpc_json_destroy(grpc_json* json);
 
-#endif  /* GRPC_INTERNAL_CORE_JSON_JSON_H */
+#endif /* GRPC_INTERNAL_CORE_JSON_JSON_H */
diff --git a/src/core/json/json_common.h b/src/core/json/json_common.h
index 84bf3759169d54b55d70898db9e4020389951702..481695b38b8412c21235aa22c4cface56c70b344 100644
--- a/src/core/json/json_common.h
+++ b/src/core/json/json_common.h
@@ -46,4 +46,4 @@ typedef enum {
   GRPC_JSON_TOP_LEVEL
 } grpc_json_type;
 
-#endif  /* GRPC_INTERNAL_CORE_JSON_JSON_COMMON_H */
+#endif /* GRPC_INTERNAL_CORE_JSON_JSON_COMMON_H */
diff --git a/src/core/json/json_reader.c b/src/core/json/json_reader.c
index c14094c290a8e5a990f1c239d4efd24d7bb232a6..c22d4edd470472a4c8582eacacceff4f603c5a0f 100644
--- a/src/core/json/json_reader.c
+++ b/src/core/json/json_reader.c
@@ -42,27 +42,26 @@ static void json_reader_string_clear(grpc_json_reader* reader) {
 }
 
 static void json_reader_string_add_char(grpc_json_reader* reader,
-                                             gpr_uint32 c) {
+                                        gpr_uint32 c) {
   reader->vtable->string_add_char(reader->userdata, c);
 }
 
 static void json_reader_string_add_utf32(grpc_json_reader* reader,
-                                              gpr_uint32 utf32) {
+                                         gpr_uint32 utf32) {
   reader->vtable->string_add_utf32(reader->userdata, utf32);
 }
 
-static gpr_uint32
-    grpc_json_reader_read_char(grpc_json_reader* reader) {
+static gpr_uint32 grpc_json_reader_read_char(grpc_json_reader* reader) {
   return reader->vtable->read_char(reader->userdata);
 }
 
 static void json_reader_container_begins(grpc_json_reader* reader,
-                                              grpc_json_type type) {
+                                         grpc_json_type type) {
   reader->vtable->container_begins(reader->userdata, type);
 }
 
-static grpc_json_type
-    grpc_json_reader_container_ends(grpc_json_reader* reader) {
+static grpc_json_type grpc_json_reader_container_ends(
+    grpc_json_reader* reader) {
   return reader->vtable->container_ends(reader->userdata);
 }
 
@@ -101,8 +100,9 @@ void grpc_json_reader_init(grpc_json_reader* reader,
 }
 
 int grpc_json_reader_is_complete(grpc_json_reader* reader) {
-  return ((reader->depth == 0) && ((reader->state == GRPC_JSON_STATE_END) ||
-          (reader->state == GRPC_JSON_STATE_VALUE_END)));
+  return ((reader->depth == 0) &&
+          ((reader->state == GRPC_JSON_STATE_END) ||
+           (reader->state == GRPC_JSON_STATE_VALUE_END)));
 }
 
 grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
@@ -143,7 +143,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
           case GRPC_JSON_STATE_OBJECT_KEY_STRING:
           case GRPC_JSON_STATE_VALUE_STRING:
             if (c != ' ') return GRPC_JSON_PARSE_ERROR;
-            if (reader->unicode_high_surrogate != 0) return GRPC_JSON_PARSE_ERROR;
+            if (reader->unicode_high_surrogate != 0)
+              return GRPC_JSON_PARSE_ERROR;
             json_reader_string_add_char(reader, c);
             break;
 
@@ -169,7 +170,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
         switch (reader->state) {
           case GRPC_JSON_STATE_OBJECT_KEY_STRING:
           case GRPC_JSON_STATE_VALUE_STRING:
-            if (reader->unicode_high_surrogate != 0) return GRPC_JSON_PARSE_ERROR;
+            if (reader->unicode_high_surrogate != 0)
+              return GRPC_JSON_PARSE_ERROR;
             json_reader_string_add_char(reader, c);
             break;
 
@@ -253,7 +255,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
 
           /* This is the \\ case. */
           case GRPC_JSON_STATE_STRING_ESCAPE:
-            if (reader->unicode_high_surrogate != 0) return GRPC_JSON_PARSE_ERROR;
+            if (reader->unicode_high_surrogate != 0)
+              return GRPC_JSON_PARSE_ERROR;
             json_reader_string_add_char(reader, '\\');
             if (reader->escaped_string_was_key) {
               reader->state = GRPC_JSON_STATE_OBJECT_KEY_STRING;
@@ -276,7 +279,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
             break;
 
           case GRPC_JSON_STATE_OBJECT_KEY_STRING:
-            if (reader->unicode_high_surrogate != 0) return GRPC_JSON_PARSE_ERROR;
+            if (reader->unicode_high_surrogate != 0)
+              return GRPC_JSON_PARSE_ERROR;
             if (c == '"') {
               reader->state = GRPC_JSON_STATE_OBJECT_KEY_END;
               json_reader_set_key(reader);
@@ -288,7 +292,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
             break;
 
           case GRPC_JSON_STATE_VALUE_STRING:
-            if (reader->unicode_high_surrogate != 0) return GRPC_JSON_PARSE_ERROR;
+            if (reader->unicode_high_surrogate != 0)
+              return GRPC_JSON_PARSE_ERROR;
             if (c == '"') {
               reader->state = GRPC_JSON_STATE_VALUE_END;
               json_reader_set_string(reader);
@@ -438,7 +443,8 @@ grpc_json_reader_status grpc_json_reader_run(grpc_json_reader* reader) {
                   if (reader->unicode_high_surrogate == 0)
                     return GRPC_JSON_PARSE_ERROR;
                   utf32 = 0x10000;
-                  utf32 += (gpr_uint32)((reader->unicode_high_surrogate - 0xd800) * 0x400);
+                  utf32 += (gpr_uint32)(
+                      (reader->unicode_high_surrogate - 0xd800) * 0x400);
                   utf32 += (gpr_uint32)(reader->unicode_char - 0xdc00);
                   json_reader_string_add_utf32(reader, utf32);
                   reader->unicode_high_surrogate = 0;
diff --git a/src/core/json/json_reader.h b/src/core/json/json_reader.h
index b1a5ace8fb5a5b8438c0dd27b26ae8b67d859762..4d5487f790420651b3b7f1aaf38aa4af91590c2a 100644
--- a/src/core/json/json_reader.h
+++ b/src/core/json/json_reader.h
@@ -157,4 +157,4 @@ void grpc_json_reader_init(grpc_json_reader* reader,
  */
 int grpc_json_reader_is_complete(grpc_json_reader* reader);
 
-#endif  /* GRPC_INTERNAL_CORE_JSON_JSON_READER_H */
+#endif /* GRPC_INTERNAL_CORE_JSON_JSON_READER_H */
diff --git a/src/core/json/json_string.c b/src/core/json/json_string.c
index 03c1099167eb408fad99758c67c5981228e002bb..e6622ec46109b59d498b2c10d17597861f34f8f5 100644
--- a/src/core/json/json_string.c
+++ b/src/core/json/json_string.c
@@ -73,7 +73,6 @@ typedef struct {
   size_t allocated;
 } json_writer_userdata;
 
-
 /* This function checks if there's enough space left in the output buffer,
  * and will enlarge it if necessary. We're only allocating chunks of 256
  * bytes at a time (or multiples thereof).
@@ -97,8 +96,8 @@ static void json_writer_output_char(void* userdata, char c) {
   state->free_space--;
 }
 
-static void json_writer_output_string_with_len(void* userdata,
-                                               const char* str, size_t len) {
+static void json_writer_output_string_with_len(void* userdata, const char* str,
+                                               size_t len) {
   json_writer_userdata* state = userdata;
   json_writer_output_check(userdata, len);
   memcpy(state->output + state->string_len, str, len);
@@ -106,8 +105,7 @@ static void json_writer_output_string_with_len(void* userdata,
   state->free_space -= len;
 }
 
-static void json_writer_output_string(void* userdata,
-                                           const char* str) {
+static void json_writer_output_string(void* userdata, const char* str) {
   size_t len = strlen(str);
   json_writer_output_string_with_len(userdata, str, len);
 }
@@ -184,8 +182,7 @@ static gpr_uint32 json_reader_read_char(void* userdata) {
 /* Helper function to create a new grpc_json object and link it into
  * our tree-in-progress inside our opaque structure.
  */
-static grpc_json* json_create_and_link(void* userdata,
-                                       grpc_json_type type) {
+static grpc_json* json_create_and_link(void* userdata, grpc_json_type type) {
   json_reader_userdata* state = userdata;
   grpc_json* json = grpc_json_create(type);
 
@@ -201,7 +198,7 @@ static grpc_json* json_create_and_link(void* userdata,
       json->parent->child = json;
     }
     if (json->parent->type == GRPC_JSON_OBJECT) {
-      json->key = (char*) state->key;
+      json->key = (char*)state->key;
     }
   }
   if (!state->top) {
@@ -261,13 +258,13 @@ static void json_reader_set_key(void* userdata) {
 static void json_reader_set_string(void* userdata) {
   json_reader_userdata* state = userdata;
   grpc_json* json = json_create_and_link(userdata, GRPC_JSON_STRING);
-  json->value = (char*) state->string;
+  json->value = (char*)state->string;
 }
 
 static int json_reader_set_number(void* userdata) {
   json_reader_userdata* state = userdata;
   grpc_json* json = json_create_and_link(userdata, GRPC_JSON_NUMBER);
-  json->value = (char*) state->string;
+  json->value = (char*)state->string;
   return 1;
 }
 
@@ -287,32 +284,25 @@ static void json_reader_set_null(void* userdata) {
 }
 
 static grpc_json_reader_vtable reader_vtable = {
-  json_reader_string_clear,
-  json_reader_string_add_char,
-  json_reader_string_add_utf32,
-  json_reader_read_char,
-  json_reader_container_begins,
-  json_reader_container_ends,
-  json_reader_set_key,
-  json_reader_set_string,
-  json_reader_set_number,
-  json_reader_set_true,
-  json_reader_set_false,
-  json_reader_set_null
-};
+    json_reader_string_clear,     json_reader_string_add_char,
+    json_reader_string_add_utf32, json_reader_read_char,
+    json_reader_container_begins, json_reader_container_ends,
+    json_reader_set_key,          json_reader_set_string,
+    json_reader_set_number,       json_reader_set_true,
+    json_reader_set_false,        json_reader_set_null};
 
 /* And finally, let's define our public API. */
 grpc_json* grpc_json_parse_string_with_len(char* input, size_t size) {
   grpc_json_reader reader;
   json_reader_userdata state;
-  grpc_json *json = NULL;
+  grpc_json* json = NULL;
   grpc_json_reader_status status;
 
   if (!input) return NULL;
 
   state.top = state.current_container = state.current_value = NULL;
   state.string = state.key = NULL;
-  state.string_ptr = state.input = (gpr_uint8*) input;
+  state.string_ptr = state.input = (gpr_uint8*)input;
   state.remaining_input = size;
   grpc_json_reader_init(&reader, &reader_vtable, &state);
 
@@ -333,8 +323,8 @@ grpc_json* grpc_json_parse_string(char* input) {
   return grpc_json_parse_string_with_len(input, UNBOUND_JSON_STRING_LENGTH);
 }
 
-static void json_dump_recursive(grpc_json_writer* writer,
-                                grpc_json* json, int in_object) {
+static void json_dump_recursive(grpc_json_writer* writer, grpc_json* json,
+                                int in_object) {
   while (json) {
     if (in_object) grpc_json_writer_object_key(writer, json->key);
 
@@ -370,10 +360,8 @@ static void json_dump_recursive(grpc_json_writer* writer,
 }
 
 static grpc_json_writer_vtable writer_vtable = {
-  json_writer_output_char,
-  json_writer_output_string,
-  json_writer_output_string_with_len
-};
+    json_writer_output_char, json_writer_output_string,
+    json_writer_output_string_with_len};
 
 char* grpc_json_dump_to_string(grpc_json* json, int indent) {
   grpc_json_writer writer;
diff --git a/src/core/json/json_writer.c b/src/core/json/json_writer.c
index bed9a9bfa5ab3844ca06d4aa0818e870cac7c974..ca9c8358252eca39acbf081030814262b32f312f 100644
--- a/src/core/json/json_writer.c
+++ b/src/core/json/json_writer.c
@@ -41,11 +41,13 @@ static void json_writer_output_char(grpc_json_writer* writer, char c) {
   writer->vtable->output_char(writer->userdata, c);
 }
 
-static void json_writer_output_string(grpc_json_writer* writer, const char* str) {
+static void json_writer_output_string(grpc_json_writer* writer,
+                                      const char* str) {
   writer->vtable->output_string(writer->userdata, str);
 }
 
-static void json_writer_output_string_with_len(grpc_json_writer* writer, const char* str, size_t len) {
+static void json_writer_output_string_with_len(grpc_json_writer* writer,
+                                               const char* str, size_t len) {
   writer->vtable->output_string_with_len(writer->userdata, str, len);
 }
 
@@ -58,8 +60,7 @@ void grpc_json_writer_init(grpc_json_writer* writer, int indent,
   writer->userdata = userdata;
 }
 
-static void json_writer_output_indent(
-    grpc_json_writer* writer) {
+static void json_writer_output_indent(grpc_json_writer* writer) {
   static const char spacesstr[] =
       "                "
       "                "
@@ -99,14 +100,15 @@ static void json_writer_value_end(grpc_json_writer* writer) {
   }
 }
 
-static void json_writer_escape_utf16(grpc_json_writer* writer, gpr_uint16 utf16) {
+static void json_writer_escape_utf16(grpc_json_writer* writer,
+                                     gpr_uint16 utf16) {
   static const char hex[] = "0123456789abcdef";
 
   json_writer_output_string_with_len(writer, "\\u", 2);
   json_writer_output_char(writer, hex[(utf16 >> 12) & 0x0f]);
   json_writer_output_char(writer, hex[(utf16 >> 8) & 0x0f]);
   json_writer_output_char(writer, hex[(utf16 >> 4) & 0x0f]);
-  json_writer_output_char(writer, hex[(utf16) & 0x0f]);
+  json_writer_output_char(writer, hex[(utf16)&0x0f]);
 }
 
 static void json_writer_escape_string(grpc_json_writer* writer,
@@ -173,8 +175,8 @@ static void json_writer_escape_string(grpc_json_writer* writer,
        * Any other range is technically reserved for future usage, so if we
        * don't want the software to break in the future, we have to allow
        * anything else. The first non-unicode character is 0x110000. */
-      if (((utf32 >= 0xd800) && (utf32 <= 0xdfff)) ||
-          (utf32 >= 0x110000)) break;
+      if (((utf32 >= 0xd800) && (utf32 <= 0xdfff)) || (utf32 >= 0x110000))
+        break;
       if (utf32 >= 0x10000) {
         /* If utf32 contains a character that is above 0xffff, it needs to be
          * broken down into a utf-16 surrogate pair. A surrogate pair is first
@@ -194,7 +196,8 @@ static void json_writer_escape_string(grpc_json_writer* writer,
          */
         utf32 -= 0x10000;
         json_writer_escape_utf16(writer, (gpr_uint16)(0xd800 | (utf32 >> 10)));
-        json_writer_escape_utf16(writer, (gpr_uint16)(0xdc00 | (utf32 & 0x3ff)));
+        json_writer_escape_utf16(writer,
+                                 (gpr_uint16)(0xdc00 | (utf32 & 0x3ff)));
       } else {
         json_writer_escape_utf16(writer, (gpr_uint16)utf32);
       }
@@ -204,7 +207,8 @@ static void json_writer_escape_string(grpc_json_writer* writer,
   json_writer_output_char(writer, '"');
 }
 
-void grpc_json_writer_container_begins(grpc_json_writer* writer, grpc_json_type type) {
+void grpc_json_writer_container_begins(grpc_json_writer* writer,
+                                       grpc_json_type type) {
   if (!writer->got_key) json_writer_value_end(writer);
   json_writer_output_indent(writer);
   json_writer_output_char(writer, type == GRPC_JSON_OBJECT ? '{' : '[');
@@ -213,7 +217,8 @@ void grpc_json_writer_container_begins(grpc_json_writer* writer, grpc_json_type
   writer->depth++;
 }
 
-void grpc_json_writer_container_ends(grpc_json_writer* writer, grpc_json_type type) {
+void grpc_json_writer_container_ends(grpc_json_writer* writer,
+                                     grpc_json_type type) {
   if (writer->indent && !writer->container_empty)
     json_writer_output_char(writer, '\n');
   writer->depth--;
@@ -238,14 +243,16 @@ void grpc_json_writer_value_raw(grpc_json_writer* writer, const char* string) {
   writer->got_key = 0;
 }
 
-void grpc_json_writer_value_raw_with_len(grpc_json_writer* writer, const char* string, size_t len) {
+void grpc_json_writer_value_raw_with_len(grpc_json_writer* writer,
+                                         const char* string, size_t len) {
   if (!writer->got_key) json_writer_value_end(writer);
   json_writer_output_indent(writer);
   json_writer_output_string_with_len(writer, string, len);
   writer->got_key = 0;
 }
 
-void grpc_json_writer_value_string(grpc_json_writer* writer, const char* string) {
+void grpc_json_writer_value_string(grpc_json_writer* writer,
+                                   const char* string) {
   if (!writer->got_key) json_writer_value_end(writer);
   json_writer_output_indent(writer);
   json_writer_escape_string(writer, string);
diff --git a/src/core/json/json_writer.h b/src/core/json/json_writer.h
index dfa61a5fefc1933bfe16be412f3c6b7df8d2756c..a299dfabf8065c7f25f13a5dec70afe86d7f3813 100644
--- a/src/core/json/json_writer.h
+++ b/src/core/json/json_writer.h
@@ -78,16 +78,20 @@ void grpc_json_writer_init(grpc_json_writer* writer, int indent,
                            grpc_json_writer_vtable* vtable, void* userdata);
 
 /* Signals the beginning of a container. */
-void grpc_json_writer_container_begins(grpc_json_writer* writer, grpc_json_type type);
+void grpc_json_writer_container_begins(grpc_json_writer* writer,
+                                       grpc_json_type type);
 /* Signals the end of a container. */
-void grpc_json_writer_container_ends(grpc_json_writer* writer, grpc_json_type type);
+void grpc_json_writer_container_ends(grpc_json_writer* writer,
+                                     grpc_json_type type);
 /* Writes down an object key for the next value. */
 void grpc_json_writer_object_key(grpc_json_writer* writer, const char* string);
 /* Sets a raw value. Useful for numbers. */
 void grpc_json_writer_value_raw(grpc_json_writer* writer, const char* string);
 /* Sets a raw value with its length. Useful for values like true or false. */
-void grpc_json_writer_value_raw_with_len(grpc_json_writer* writer, const char* string, size_t len);
+void grpc_json_writer_value_raw_with_len(grpc_json_writer* writer,
+                                         const char* string, size_t len);
 /* Sets a string value. It'll be escaped, and utf-8 validated. */
-void grpc_json_writer_value_string(grpc_json_writer* writer, const char* string);
+void grpc_json_writer_value_string(grpc_json_writer* writer,
+                                   const char* string);
 
-#endif  /* GRPC_INTERNAL_CORE_JSON_JSON_WRITER_H */
+#endif /* GRPC_INTERNAL_CORE_JSON_JSON_WRITER_H */
diff --git a/src/core/profiling/timers.h b/src/core/profiling/timers.h
index 036d02f187d47a18096cf20886dffdd8eb3b1372..92dbab90425723069ee9b029d0df1bba0565eea2 100644
--- a/src/core/profiling/timers.h
+++ b/src/core/profiling/timers.h
@@ -88,7 +88,7 @@ enum grpc_profiling_tags {
   } while (0)
 
 #define GRPC_TIMER_IMPORTANT_MARK(tag, id) \
-  do {                           \
+  do {                                     \
   } while (0)
 
 #define GRPC_TIMER_BEGIN(tag, id) \
diff --git a/src/core/security/auth_filters.h b/src/core/security/auth_filters.h
index ff921690e09cfc51956c7aca2763a8283a2130d3..c179b54bec28af87f398fa679c4f248b87ba01aa 100644
--- a/src/core/security/auth_filters.h
+++ b/src/core/security/auth_filters.h
@@ -39,4 +39,4 @@
 extern const grpc_channel_filter grpc_client_auth_filter;
 extern const grpc_channel_filter grpc_server_auth_filter;
 
-#endif  /* GRPC_INTERNAL_CORE_SECURITY_AUTH_FILTERS_H */
+#endif /* GRPC_INTERNAL_CORE_SECURITY_AUTH_FILTERS_H */
diff --git a/src/core/security/base64.h b/src/core/security/base64.h
index b9abc07b5242471013d20de698cae73ef6f44ba9..31ae982691affe1e2f01b35df1b89aea63ec8fdc 100644
--- a/src/core/security/base64.h
+++ b/src/core/security/base64.h
@@ -49,4 +49,4 @@ gpr_slice grpc_base64_decode(const char *b64, int url_safe);
 gpr_slice grpc_base64_decode_with_len(const char *b64, size_t b64_len,
                                       int url_safe);
 
-#endif  /* GRPC_INTERNAL_CORE_SECURITY_BASE64_H */
+#endif /* GRPC_INTERNAL_CORE_SECURITY_BASE64_H */
diff --git a/src/core/security/client_auth_filter.c b/src/core/security/client_auth_filter.c
index 410852da523a46fe071f19f0e7c4e159ab502cb5..8e63978b82f9a8ae514652aae433311d6c073f50 100644
--- a/src/core/security/client_auth_filter.c
+++ b/src/core/security/client_auth_filter.c
@@ -200,7 +200,7 @@ static void auth_start_transport_op(grpc_call_element *elem,
   channel_data *chand = elem->channel_data;
   grpc_linked_mdelem *l;
   size_t i;
-  grpc_client_security_context* sec_ctx = NULL;
+  grpc_client_security_context *sec_ctx = NULL;
 
   if (calld->security_context_set == 0) {
     calld->security_context_set = 1;
@@ -316,9 +316,11 @@ static void init_channel_elem(grpc_channel_element *elem, grpc_channel *master,
       (grpc_channel_security_connector *)GRPC_SECURITY_CONNECTOR_REF(
           sc, "client_auth_filter");
   chand->md_ctx = metadata_context;
-  chand->authority_string = grpc_mdstr_from_string(chand->md_ctx, ":authority", 0);
+  chand->authority_string =
+      grpc_mdstr_from_string(chand->md_ctx, ":authority", 0);
   chand->path_string = grpc_mdstr_from_string(chand->md_ctx, ":path", 0);
-  chand->error_msg_key = grpc_mdstr_from_string(chand->md_ctx, "grpc-message", 0);
+  chand->error_msg_key =
+      grpc_mdstr_from_string(chand->md_ctx, "grpc-message", 0);
   chand->status_key = grpc_mdstr_from_string(chand->md_ctx, "grpc-status", 0);
 }
 
diff --git a/src/core/security/credentials.c b/src/core/security/credentials.c
index 6421ce673d2b51c22f53d46f070deb5a216f70d1..8852cab3e7883369840244891818a36783883af6 100644
--- a/src/core/security/credentials.c
+++ b/src/core/security/credentials.c
@@ -793,16 +793,16 @@ void on_simulated_token_fetch_done(void *user_data, int success) {
       (grpc_credentials_metadata_request *)user_data;
   grpc_md_only_test_credentials *c = (grpc_md_only_test_credentials *)r->creds;
   GPR_ASSERT(success);
-  r->cb(r->user_data, c->md_store->entries,
-        c->md_store->num_entries, GRPC_CREDENTIALS_OK);
+  r->cb(r->user_data, c->md_store->entries, c->md_store->num_entries,
+        GRPC_CREDENTIALS_OK);
   grpc_credentials_metadata_request_destroy(r);
 }
 
 static void md_only_test_get_request_metadata(grpc_credentials *creds,
-                                             grpc_pollset *pollset,
-                                             const char *service_url,
-                                             grpc_credentials_metadata_cb cb,
-                                             void *user_data) {
+                                              grpc_pollset *pollset,
+                                              const char *service_url,
+                                              grpc_credentials_metadata_cb cb,
+                                              void *user_data) {
   grpc_md_only_test_credentials *c = (grpc_md_only_test_credentials *)creds;
 
   if (c->is_async) {
@@ -854,10 +854,10 @@ static int access_token_has_request_metadata_only(
 }
 
 static void access_token_get_request_metadata(grpc_credentials *creds,
-                                             grpc_pollset *pollset,
-                                             const char *service_url,
-                                             grpc_credentials_metadata_cb cb,
-                                             void *user_data) {
+                                              grpc_pollset *pollset,
+                                              const char *service_url,
+                                              grpc_credentials_metadata_cb cb,
+                                              void *user_data) {
   grpc_access_token_credentials *c = (grpc_access_token_credentials *)creds;
   cb(user_data, c->access_token_md->entries, 1, GRPC_CREDENTIALS_OK);
 }
diff --git a/src/core/security/credentials.h b/src/core/security/credentials.h
index 04736525dcc58d758990c6c5617b33136d014f16..29cd1ac87fcafde26c6345d8056bade0693ba9d3 100644
--- a/src/core/security/credentials.h
+++ b/src/core/security/credentials.h
@@ -192,8 +192,9 @@ void grpc_flush_cached_google_default_credentials(void);
 
 /* Metadata-only credentials with the specified key and value where
    asynchronicity can be simulated for testing. */
-grpc_credentials *grpc_md_only_test_credentials_create(
-    const char *md_key, const char *md_value, int is_async);
+grpc_credentials *grpc_md_only_test_credentials_create(const char *md_key,
+                                                       const char *md_value,
+                                                       int is_async);
 
 /* Private constructor for jwt credentials from an already parsed json key.
    Takes ownership of the key. */
diff --git a/src/core/security/credentials_metadata.c b/src/core/security/credentials_metadata.c
index 22c786be56272a038356da1caec5949c531c20d5..b8a132f1eaf39d29846adc4635fed0c194cb7e44 100644
--- a/src/core/security/credentials_metadata.c
+++ b/src/core/security/credentials_metadata.c
@@ -47,7 +47,8 @@ static void store_ensure_capacity(grpc_credentials_md_store *store) {
 
 grpc_credentials_md_store *grpc_credentials_md_store_create(
     size_t initial_capacity) {
-  grpc_credentials_md_store *store = gpr_malloc(sizeof(grpc_credentials_md_store));
+  grpc_credentials_md_store *store =
+      gpr_malloc(sizeof(grpc_credentials_md_store));
   memset(store, 0, sizeof(grpc_credentials_md_store));
   if (initial_capacity > 0) {
     store->entries = gpr_malloc(initial_capacity * sizeof(grpc_credentials_md));
@@ -98,4 +99,3 @@ void grpc_credentials_md_store_unref(grpc_credentials_md_store *store) {
     gpr_free(store);
   }
 }
-
diff --git a/src/core/security/google_default_credentials.c b/src/core/security/google_default_credentials.c
index d1f228665f06d3b05c5860a87944177a3d60ebfc..3631de867af8e4d2f38244f7940625711fbbda0c 100644
--- a/src/core/security/google_default_credentials.c
+++ b/src/core/security/google_default_credentials.c
@@ -115,7 +115,7 @@ static int is_stack_running_on_compute_engine(void) {
   gpr_mu_lock(GRPC_POLLSET_MU(&detector.pollset));
   while (!detector.is_done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&detector.pollset, &worker,
+    grpc_pollset_work(&detector.pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
                       gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&detector.pollset));
@@ -203,8 +203,8 @@ end:
     /* Blend with default ssl credentials and add a global reference so that it
        can be cached and re-served. */
     grpc_credentials *ssl_creds = grpc_ssl_credentials_create(NULL, NULL);
-    default_credentials = grpc_credentials_ref(grpc_composite_credentials_create(
-        ssl_creds, result));
+    default_credentials = grpc_credentials_ref(
+        grpc_composite_credentials_create(ssl_creds, result));
     GPR_ASSERT(default_credentials != NULL);
     grpc_credentials_unref(ssl_creds);
     grpc_credentials_unref(result);
diff --git a/src/core/security/json_token.h b/src/core/security/json_token.h
index 091dfefb6e58856825fa7add531157748fb4d765..7e06864ff3adb5c013e2fab49c2619d2ebdb1b67 100644
--- a/src/core/security/json_token.h
+++ b/src/core/security/json_token.h
@@ -115,4 +115,4 @@ grpc_auth_refresh_token grpc_auth_refresh_token_create_from_json(
 /* Destructs the object. */
 void grpc_auth_refresh_token_destruct(grpc_auth_refresh_token *refresh_token);
 
-#endif  /* GRPC_INTERNAL_CORE_SECURITY_JSON_TOKEN_H */
+#endif /* GRPC_INTERNAL_CORE_SECURITY_JSON_TOKEN_H */
diff --git a/src/core/security/jwt_verifier.h b/src/core/security/jwt_verifier.h
index 8077e24883cb68939e7aad9b02fb56a53d8431f4..7a32debfcb562500f74a9a12f2e447f0ddee79c8 100644
--- a/src/core/security/jwt_verifier.h
+++ b/src/core/security/jwt_verifier.h
@@ -133,4 +133,3 @@ grpc_jwt_verifier_status grpc_jwt_claims_check(const grpc_jwt_claims *claims,
                                                const char *audience);
 
 #endif /* GRPC_INTERNAL_CORE_SECURITY_JWT_VERIFIER_H */
-
diff --git a/src/core/security/secure_endpoint.c b/src/core/security/secure_endpoint.c
index 95fbf71f3d1f9ab54190818d0b5738724f42bc02..81b3e33cb2c1bd7227862a8fd8c267447ea0ad2e 100644
--- a/src/core/security/secure_endpoint.c
+++ b/src/core/security/secure_endpoint.c
@@ -332,7 +332,7 @@ static void endpoint_add_to_pollset(grpc_endpoint *secure_ep,
 }
 
 static void endpoint_add_to_pollset_set(grpc_endpoint *secure_ep,
-                                    grpc_pollset_set *pollset_set) {
+                                        grpc_pollset_set *pollset_set) {
   secure_endpoint *ep = (secure_endpoint *)secure_ep;
   grpc_endpoint_add_to_pollset_set(ep->wrapped_ep, pollset_set);
 }
diff --git a/src/core/security/secure_endpoint.h b/src/core/security/secure_endpoint.h
index 93c29b51110b25af0dd4c29bf45338441cab1d0a..c563bdd9c505f42241ffbace849ce34c774efa8f 100644
--- a/src/core/security/secure_endpoint.h
+++ b/src/core/security/secure_endpoint.h
@@ -46,4 +46,4 @@ grpc_endpoint *grpc_secure_endpoint_create(
     struct tsi_frame_protector *protector, grpc_endpoint *to_wrap,
     gpr_slice *leftover_slices, size_t leftover_nslices);
 
-#endif  /* GRPC_INTERNAL_CORE_SECURITY_SECURE_ENDPOINT_H */
+#endif /* GRPC_INTERNAL_CORE_SECURITY_SECURE_ENDPOINT_H */
diff --git a/src/core/security/secure_transport_setup.h b/src/core/security/secure_transport_setup.h
index 29025f5236bc758f32072edf5cd19f5b2666c02e..d9b802556de9bbcd769e4dfbc9412347a869d3c9 100644
--- a/src/core/security/secure_transport_setup.h
+++ b/src/core/security/secure_transport_setup.h
@@ -50,4 +50,4 @@ void grpc_setup_secure_transport(grpc_security_connector *connector,
                                  grpc_secure_transport_setup_done_cb cb,
                                  void *user_data);
 
-#endif  /* GRPC_INTERNAL_CORE_SECURITY_SECURE_TRANSPORT_SETUP_H */
+#endif /* GRPC_INTERNAL_CORE_SECURITY_SECURE_TRANSPORT_SETUP_H */
diff --git a/src/core/security/security_connector.c b/src/core/security/security_connector.c
index a354536dcd31d5cb450896a078ba13dc37d01440..ba9ac68c5f1230147abb323743d405dfe8755bf3 100644
--- a/src/core/security/security_connector.c
+++ b/src/core/security/security_connector.c
@@ -575,6 +575,16 @@ grpc_security_status grpc_ssl_channel_security_connector_create(
   if (!check_request_metadata_creds(request_metadata_creds)) {
     goto error;
   }
+  if (config->pem_root_certs == NULL) {
+    pem_root_certs_size = grpc_get_default_ssl_roots(&pem_root_certs);
+    if (pem_root_certs == NULL || pem_root_certs_size == 0) {
+      gpr_log(GPR_ERROR, "Could not get default pem root certs.");
+      goto error;
+    }
+  } else {
+    pem_root_certs = config->pem_root_certs;
+    pem_root_certs_size = config->pem_root_certs_size;
+  }
 
   c = gpr_malloc(sizeof(grpc_ssl_channel_security_connector));
   memset(c, 0, sizeof(grpc_ssl_channel_security_connector));
@@ -590,16 +600,6 @@ grpc_security_status grpc_ssl_channel_security_connector_create(
   if (overridden_target_name != NULL) {
     c->overridden_target_name = gpr_strdup(overridden_target_name);
   }
-  if (config->pem_root_certs == NULL) {
-    pem_root_certs_size = grpc_get_default_ssl_roots(&pem_root_certs);
-    if (pem_root_certs == NULL || pem_root_certs_size == 0) {
-      gpr_log(GPR_ERROR, "Could not get default pem root certs.");
-      goto error;
-    }
-  } else {
-    pem_root_certs = config->pem_root_certs;
-    pem_root_certs_size = config->pem_root_certs_size;
-  }
   result = tsi_create_ssl_client_handshaker_factory(
       config->pem_private_key, config->pem_private_key_size,
       config->pem_cert_chain, config->pem_cert_chain_size, pem_root_certs,
diff --git a/src/core/security/security_context.c b/src/core/security/security_context.c
index 1ef0fc9255b909f0b248c8980c1a0240638849fa..c1b434f3021fe248260959d533c1d12bb4ddf8ce 100644
--- a/src/core/security/security_context.c
+++ b/src/core/security/security_context.c
@@ -204,8 +204,7 @@ int grpc_auth_context_set_peer_identity_property_name(grpc_auth_context *ctx,
   return 1;
 }
 
-int grpc_auth_context_peer_is_authenticated(
-    const grpc_auth_context *ctx) {
+int grpc_auth_context_peer_is_authenticated(const grpc_auth_context *ctx) {
   return ctx->peer_identity_property_name == NULL ? 0 : 1;
 }
 
@@ -326,4 +325,3 @@ grpc_auth_metadata_processor *grpc_find_auth_metadata_processor_in_args(
   }
   return NULL;
 }
-
diff --git a/src/core/security/security_context.h b/src/core/security/security_context.h
index 7fcd438cf6ff4b32610dbc50cf678bbd9f6593bb..a9a03064108a162c08efd4de9f33c0f0f654724e 100644
--- a/src/core/security/security_context.h
+++ b/src/core/security/security_context.h
@@ -112,5 +112,4 @@ grpc_auth_metadata_processor *grpc_auth_metadata_processor_from_arg(
 grpc_auth_metadata_processor *grpc_find_auth_metadata_processor_in_args(
     const grpc_channel_args *args);
 
-#endif  /* GRPC_INTERNAL_CORE_SECURITY_SECURITY_CONTEXT_H */
-
+#endif /* GRPC_INTERNAL_CORE_SECURITY_SECURITY_CONTEXT_H */
diff --git a/src/core/security/server_auth_filter.c b/src/core/security/server_auth_filter.c
index 2fc689caecdc29371e4200217332ebaea1b84371..6e831431fa218390da2b4a52bc474cccd2c944a5 100644
--- a/src/core/security/server_auth_filter.c
+++ b/src/core/security/server_auth_filter.c
@@ -104,24 +104,34 @@ static grpc_mdelem *remove_consumed_md(void *user_data, grpc_mdelem *md) {
   return md;
 }
 
-static void on_md_processing_done(void *user_data,
-                                  const grpc_metadata *consumed_md,
-                                  size_t num_consumed_md, int success) {
+static void on_md_processing_done(
+    void *user_data, const grpc_metadata *consumed_md, size_t num_consumed_md,
+    const grpc_metadata *response_md, size_t num_response_md,
+    grpc_status_code status, const char *error_details) {
   grpc_call_element *elem = user_data;
   call_data *calld = elem->call_data;
 
-  if (success) {
+  /* TODO(jboeuf): Implement support for response_md. */
+  if (response_md != NULL && num_response_md > 0) {
+    gpr_log(GPR_INFO,
+            "response_md in auth metadata processing not supported for now. "
+            "Ignoring...");
+  }
+
+  if (status == GRPC_STATUS_OK) {
     calld->consumed_md = consumed_md;
     calld->num_consumed_md = num_consumed_md;
     grpc_metadata_batch_filter(&calld->md_op->data.metadata, remove_consumed_md,
                                elem);
-    calld->on_done_recv->cb(calld->on_done_recv->cb_arg, success);
+    calld->on_done_recv->cb(calld->on_done_recv->cb_arg, 1);
   } else {
-    gpr_slice message = gpr_slice_from_copied_string(
-        "Authentication metadata processing failed.");
+    gpr_slice message;
+    error_details = error_details != NULL
+                    ? error_details
+                    : "Authentication metadata processing failed.";
+    message = gpr_slice_from_copied_string(error_details);
     grpc_sopb_reset(calld->recv_ops);
-    grpc_transport_stream_op_add_close(&calld->transport_op,
-                                       GRPC_STATUS_UNAUTHENTICATED, &message);
+    grpc_transport_stream_op_add_close(&calld->transport_op, status, &message);
     grpc_call_next_op(elem, &calld->transport_op);
   }
 }
@@ -212,8 +222,7 @@ static void init_call_elem(grpc_call_element *elem,
 }
 
 /* Destructor for call_data */
-static void destroy_call_elem(grpc_call_element *elem) {
-}
+static void destroy_call_elem(grpc_call_element *elem) {}
 
 /* Constructor for channel_data */
 static void init_channel_elem(grpc_channel_element *elem, grpc_channel *master,
diff --git a/src/core/statistics/census_interface.h b/src/core/statistics/census_interface.h
index eb4349c3115e15efcfcc54a6900d77e981bf6f68..ac1ff24866b8d4c70c31d3ee41981868958e5aa4 100644
--- a/src/core/statistics/census_interface.h
+++ b/src/core/statistics/census_interface.h
@@ -73,4 +73,4 @@ census_op_id census_tracing_start_op(void);
 /* Ends tracing. Calling this function will invalidate the input op_id. */
 void census_tracing_end_op(census_op_id op_id);
 
-#endif  /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_INTERFACE_H */
+#endif /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_INTERFACE_H */
diff --git a/src/core/statistics/census_log.h b/src/core/statistics/census_log.h
index 06869b7a33a509fcfc55c2e6a27fef659ea1fc4c..60b6d597dff422e62e05a8230c8a5121873b6a57 100644
--- a/src/core/statistics/census_log.h
+++ b/src/core/statistics/census_log.h
@@ -88,4 +88,4 @@ size_t census_log_remaining_space(void);
    out-of-space. */
 int census_log_out_of_space_count(void);
 
-#endif  /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_LOG_H */
+#endif /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_LOG_H */
diff --git a/src/core/statistics/census_rpc_stats.c b/src/core/statistics/census_rpc_stats.c
index 3e571b1143ed542b57244448a6ffabc4c85b83a2..b836987cf08b4183ee2daf99e2e76b75c543d481 100644
--- a/src/core/statistics/census_rpc_stats.c
+++ b/src/core/statistics/census_rpc_stats.c
@@ -85,8 +85,8 @@ static void delete_key(void* key) { gpr_free(key); }
 
 static const census_ht_option ht_opt = {
     CENSUS_HT_POINTER /* key type */, 1999 /* n_of_buckets */,
-    simple_hash /* hash function */, cmp_str_keys /* key comparator */,
-    delete_stats /* data deleter */, delete_key /* key deleter */
+    simple_hash /* hash function */,  cmp_str_keys /* key comparator */,
+    delete_stats /* data deleter */,  delete_key /* key deleter */
 };
 
 static void init_rpc_stats(void* stats) {
diff --git a/src/core/statistics/census_rpc_stats.h b/src/core/statistics/census_rpc_stats.h
index 9336dce1f8525bdb6c96fe713ecbe2db60ff9e43..aec31c1971716a5e85d470c194069c441b0a240c 100644
--- a/src/core/statistics/census_rpc_stats.h
+++ b/src/core/statistics/census_rpc_stats.h
@@ -98,4 +98,4 @@ void census_stats_store_shutdown(void);
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_RPC_STATS_H */
+#endif /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_RPC_STATS_H */
diff --git a/src/core/statistics/census_tracing.c b/src/core/statistics/census_tracing.c
index 3036ba5407f570b7108ce9d77b2ffc215b11743c..f2a09dc06e668da5f0871e0c0ce8c3b16d423139 100644
--- a/src/core/statistics/census_tracing.c
+++ b/src/core/statistics/census_tracing.c
@@ -60,8 +60,11 @@ static void delete_trace_obj(void* obj) {
 }
 
 static const census_ht_option ht_opt = {
-    CENSUS_HT_UINT64 /* key type*/, 571 /* n_of_buckets */, NULL /* hash */,
-    NULL /* compare_keys */, delete_trace_obj /* delete data */,
+    CENSUS_HT_UINT64 /* key type*/,
+    571 /* n_of_buckets */,
+    NULL /* hash */,
+    NULL /* compare_keys */,
+    delete_trace_obj /* delete data */,
     NULL /* delete key */
 };
 
diff --git a/src/core/statistics/census_tracing.h b/src/core/statistics/census_tracing.h
index a4494b510c25551758c39d22909e321b67e20c34..08305c2469542e416fc9bd142dd929561d9aec87 100644
--- a/src/core/statistics/census_tracing.h
+++ b/src/core/statistics/census_tracing.h
@@ -93,4 +93,4 @@ census_trace_obj** census_get_active_ops(int* num_active_ops);
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_TRACING_H */
+#endif /* GRPC_INTERNAL_CORE_STATISTICS_CENSUS_TRACING_H */
diff --git a/src/core/statistics/hash_table.h b/src/core/statistics/hash_table.h
index 7bcb4bcd9bd3f8d9076ca18b920c83e198fc5edd..b7f8e11af475e3681a703f12acc4e05ccefbfc74 100644
--- a/src/core/statistics/hash_table.h
+++ b/src/core/statistics/hash_table.h
@@ -128,4 +128,4 @@ typedef void (*census_ht_itr_cb)(census_ht_key key, const void* val_ptr,
    should not invalidate data entries. */
 gpr_uint64 census_ht_for_all(const census_ht* ht, census_ht_itr_cb);
 
-#endif  /* GRPC_INTERNAL_CORE_STATISTICS_HASH_TABLE_H */
+#endif /* GRPC_INTERNAL_CORE_STATISTICS_HASH_TABLE_H */
diff --git a/src/core/support/cpu_iphone.c b/src/core/support/cpu_iphone.c
index d412a6d7ee6013922db6c7e3a6c81b8bce026e86..82b49b47bc0a0c9dcc06b1be9c8d8aadc353eb44 100644
--- a/src/core/support/cpu_iphone.c
+++ b/src/core/support/cpu_iphone.c
@@ -36,9 +36,7 @@
 #ifdef GPR_CPU_IPHONE
 
 /* Probably 2 instead of 1, but see comment on gpr_cpu_current_cpu. */
-unsigned gpr_cpu_num_cores(void) {
-  return 1;
-}
+unsigned gpr_cpu_num_cores(void) { return 1; }
 
 /* Most code that's using this is using it to shard across work queues. So
    unless profiling shows it's a problem or there appears a way to detect the
@@ -46,8 +44,6 @@ unsigned gpr_cpu_num_cores(void) {
    Note that the interface in cpu.h lets gpr_cpu_num_cores return 0, but doing
    it makes it impossible for gpr_cpu_current_cpu to satisfy its stated range,
    and some code might be relying on it. */
-unsigned gpr_cpu_current_cpu(void) {
-  return 0;
-}
+unsigned gpr_cpu_current_cpu(void) { return 0; }
 
 #endif /* GPR_CPU_IPHONE */
diff --git a/src/core/support/cpu_linux.c b/src/core/support/cpu_linux.c
index 282d4daab1c50fdf8198c1c87fdc3594e49eff93..7af6a8f0090b4d14e670a6b8e5a63801381a9a6e 100644
--- a/src/core/support/cpu_linux.c
+++ b/src/core/support/cpu_linux.c
@@ -33,7 +33,7 @@
 
 #ifndef _GNU_SOURCE
 #define _GNU_SOURCE
-#endif  /* _GNU_SOURCE */
+#endif /* _GNU_SOURCE */
 
 #include <grpc/support/port_platform.h>
 
diff --git a/src/core/support/env.h b/src/core/support/env.h
index 4f2e394d1409ea6235d70c5fcd68dc66363f97fb..24172d86737eceb6ccfbd4f4bb854b0d2bbbe4f8 100644
--- a/src/core/support/env.h
+++ b/src/core/support/env.h
@@ -57,4 +57,4 @@ void gpr_setenv(const char *name, const char *value);
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_SUPPORT_ENV_H */
+#endif /* GRPC_INTERNAL_CORE_SUPPORT_ENV_H */
diff --git a/src/core/support/file.h b/src/core/support/file.h
index 1dafe390e371ea6c6436d2b73874b56d2be6e00a..d8b7cea44fd799ef0f2e86556865b49703057680 100644
--- a/src/core/support/file.h
+++ b/src/core/support/file.h
@@ -60,4 +60,4 @@ FILE *gpr_tmpfile(const char *prefix, char **tmp_filename);
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_SUPPORT_FILE_H */
+#endif /* GRPC_INTERNAL_CORE_SUPPORT_FILE_H */
diff --git a/src/core/support/histogram.c b/src/core/support/histogram.c
index 902970389103dd93cecd5c462b6d0d9d4b804ca7..78dbf98684ace19e79f92e0fddc1ff6b390517ca 100644
--- a/src/core/support/histogram.c
+++ b/src/core/support/histogram.c
@@ -191,15 +191,18 @@ static double threshold_for_count_below(gpr_histogram *h, double count_below) {
         break;
       }
     }
-    return (bucket_start(h, (double)lower_idx) + bucket_start(h, (double)upper_idx)) / 2.0;
+    return (bucket_start(h, (double)lower_idx) +
+            bucket_start(h, (double)upper_idx)) /
+           2.0;
   } else {
     /* treat values as uniform throughout the bucket, and find where this value
        should lie */
     lower_bound = bucket_start(h, (double)lower_idx);
     upper_bound = bucket_start(h, (double)(lower_idx + 1));
-    return GPR_CLAMP(upper_bound - (upper_bound - lower_bound) *
-                                       (count_so_far - count_below) /
-                                       h->buckets[lower_idx],
+    return GPR_CLAMP(upper_bound -
+                         (upper_bound - lower_bound) *
+                             (count_so_far - count_below) /
+                             h->buckets[lower_idx],
                      h->min_seen, h->max_seen);
   }
 }
diff --git a/src/core/support/log_linux.c b/src/core/support/log_linux.c
index 5ac36e7b9507af37c689ca9a5c67707438da744a..02f64d8b7e41b6047dc565ebfa845e34bfbb9172 100644
--- a/src/core/support/log_linux.c
+++ b/src/core/support/log_linux.c
@@ -93,8 +93,8 @@ void gpr_default_log(gpr_log_func_args *args) {
   }
 
   gpr_asprintf(&prefix, "%s%s.%09d %7tu %s:%d]",
-          gpr_log_severity_string(args->severity), time_buffer,
-          (int)(now.tv_nsec), gettid(), display_file, args->line);
+               gpr_log_severity_string(args->severity), time_buffer,
+               (int)(now.tv_nsec), gettid(), display_file, args->line);
 
   fprintf(stderr, "%-60s %s\n", prefix, args->message);
   gpr_free(prefix);
diff --git a/src/core/support/murmur_hash.h b/src/core/support/murmur_hash.h
index 85ab2fe4bfdd3511a837e2874e9001c6a87b4acc..343fcb99f7de48c897c0cd59342433bef64bd3c3 100644
--- a/src/core/support/murmur_hash.h
+++ b/src/core/support/murmur_hash.h
@@ -41,4 +41,4 @@
 /* compute the hash of key (length len) */
 gpr_uint32 gpr_murmur_hash3(const void *key, size_t len, gpr_uint32 seed);
 
-#endif  /* GRPC_INTERNAL_CORE_SUPPORT_MURMUR_HASH_H */
+#endif /* GRPC_INTERNAL_CORE_SUPPORT_MURMUR_HASH_H */
diff --git a/src/core/support/slice.c b/src/core/support/slice.c
index e4196a48c649b856a9447709c25a70797d15090e..53024e88f1b21482647fd72c1f0dd7bb29bc5777 100644
--- a/src/core/support/slice.c
+++ b/src/core/support/slice.c
@@ -284,7 +284,8 @@ gpr_slice gpr_slice_split_head(gpr_slice *source, size_t split) {
     head.refcount = NULL;
     head.data.inlined.length = (gpr_uint8)split;
     memcpy(head.data.inlined.bytes, source->data.inlined.bytes, split);
-    source->data.inlined.length = (gpr_uint8)(source->data.inlined.length - split);
+    source->data.inlined.length =
+        (gpr_uint8)(source->data.inlined.length - split);
     memmove(source->data.inlined.bytes, source->data.inlined.bytes + split,
             source->data.inlined.length);
   } else if (split < sizeof(head.data.inlined.bytes)) {
diff --git a/src/core/support/slice_buffer.c b/src/core/support/slice_buffer.c
index 6e6c72a2bf0fdc82ddb9b82c1bcb6abce5e26560..987d5cb9b551f5f9d63091bc0e99999dbe0dfac2 100644
--- a/src/core/support/slice_buffer.c
+++ b/src/core/support/slice_buffer.c
@@ -116,7 +116,8 @@ void gpr_slice_buffer_add(gpr_slice_buffer *sb, gpr_slice s) {
           GPR_SLICE_INLINED_SIZE) {
         memcpy(back->data.inlined.bytes + back->data.inlined.length,
                s.data.inlined.bytes, s.data.inlined.length);
-        back->data.inlined.length = (gpr_uint8)(back->data.inlined.length + s.data.inlined.length);
+        back->data.inlined.length =
+            (gpr_uint8)(back->data.inlined.length + s.data.inlined.length);
       } else {
         size_t cp1 = GPR_SLICE_INLINED_SIZE - back->data.inlined.length;
         memcpy(back->data.inlined.bytes + back->data.inlined.length,
diff --git a/src/core/support/stack_lockfree.c b/src/core/support/stack_lockfree.c
index bc741f8c7030c59dcfaf16e292a749e1b500e201..27ecf62280e7f6dfc9d7a31504753427dae51e55 100644
--- a/src/core/support/stack_lockfree.c
+++ b/src/core/support/stack_lockfree.c
@@ -67,7 +67,7 @@ typedef union lockfree_node {
 #define ENTRY_ALIGNMENT_BITS 3 /* make sure that entries aligned to 8-bytes */
 #define INVALID_ENTRY_INDEX                        \
   ((1 << 16) - 1) /* reserve this entry as invalid \
-                       */
+                        */
 
 struct gpr_stack_lockfree {
   lockfree_node *entries;
@@ -75,7 +75,7 @@ struct gpr_stack_lockfree {
 
 #ifndef NDEBUG
   /* Bitmap of pushed entries to check for double-push or pop */
-  gpr_atm pushed[(INVALID_ENTRY_INDEX+1)/(8*sizeof(gpr_atm))];
+  gpr_atm pushed[(INVALID_ENTRY_INDEX + 1) / (8 * sizeof(gpr_atm))];
 #endif
 };
 
@@ -123,13 +123,13 @@ int gpr_stack_lockfree_push(gpr_stack_lockfree *stack, int entry) {
 #ifndef NDEBUG
   /* Check for double push */
   {
-    int pushed_index = entry / (8*sizeof(gpr_atm));
-    int pushed_bit = entry % (8*sizeof(gpr_atm));
+    int pushed_index = entry / (8 * sizeof(gpr_atm));
+    int pushed_bit = entry % (8 * sizeof(gpr_atm));
     gpr_atm old_val;
 
     old_val = gpr_atm_no_barrier_fetch_add(&stack->pushed[pushed_index],
-					   (gpr_atm)(1UL << pushed_bit));
-    GPR_ASSERT((old_val & (1UL<<pushed_bit)) == 0);
+                                           (gpr_atm)(1UL << pushed_bit));
+    GPR_ASSERT((old_val & (1UL << pushed_bit)) == 0);
   }
 #endif
 
@@ -161,13 +161,13 @@ int gpr_stack_lockfree_pop(gpr_stack_lockfree *stack) {
 #ifndef NDEBUG
   /* Check for valid pop */
   {
-    int pushed_index = head.contents.index / (8*sizeof(gpr_atm));
-    int pushed_bit = head.contents.index % (8*sizeof(gpr_atm));
+    int pushed_index = head.contents.index / (8 * sizeof(gpr_atm));
+    int pushed_bit = head.contents.index % (8 * sizeof(gpr_atm));
     gpr_atm old_val;
 
     old_val = gpr_atm_no_barrier_fetch_add(&stack->pushed[pushed_index],
-					   -(gpr_atm)(1UL << pushed_bit));
-    GPR_ASSERT((old_val & (1UL<<pushed_bit)) != 0);
+                                           -(gpr_atm)(1UL << pushed_bit));
+    GPR_ASSERT((old_val & (1UL << pushed_bit)) != 0);
   }
 #endif
 
diff --git a/src/core/support/string.c b/src/core/support/string.c
index 9babbd910ac3106497db29ffa97e853ca1d67997..af0389ea832d75d7e730309b4649437f70502036 100644
--- a/src/core/support/string.c
+++ b/src/core/support/string.c
@@ -125,7 +125,6 @@ char *gpr_dump_slice(gpr_slice s, gpr_uint32 flags) {
                   flags);
 }
 
-
 int gpr_parse_bytes_to_uint32(const char *buf, size_t len, gpr_uint32 *result) {
   gpr_uint32 out = 0;
   gpr_uint32 new;
@@ -187,9 +186,9 @@ char *gpr_strjoin_sep(const char **strs, size_t nstrs, const char *sep,
   for (i = 0; i < nstrs; i++) {
     out_length += strlen(strs[i]);
   }
-  out_length += 1;  /* null terminator */
+  out_length += 1; /* null terminator */
   if (nstrs > 0) {
-    out_length += sep_len * (nstrs - 1);  /* separators */
+    out_length += sep_len * (nstrs - 1); /* separators */
   }
   out = gpr_malloc(out_length);
   out_length = 0;
@@ -214,10 +213,8 @@ char *gpr_strjoin_sep(const char **strs, size_t nstrs, const char *sep,
  * str.
  *
  * Returns 1 and updates \a begin and \a end. Returns 0 otherwise. */
-static int slice_find_separator_offset(const gpr_slice str,
-                                       const char *sep,
-                                       const size_t read_offset,
-                                       size_t *begin,
+static int slice_find_separator_offset(const gpr_slice str, const char *sep,
+                                       const size_t read_offset, size_t *begin,
                                        size_t *end) {
   size_t i;
   const gpr_uint8 *str_ptr = GPR_SLICE_START_PTR(str) + read_offset;
@@ -255,9 +252,7 @@ void gpr_slice_split(gpr_slice str, const char *sep, gpr_slice_buffer *dst) {
   }
 }
 
-void gpr_strvec_init(gpr_strvec *sv) {
-  memset(sv, 0, sizeof(*sv));
-}
+void gpr_strvec_init(gpr_strvec *sv) { memset(sv, 0, sizeof(*sv)); }
 
 void gpr_strvec_destroy(gpr_strvec *sv) {
   size_t i;
@@ -270,11 +265,11 @@ void gpr_strvec_destroy(gpr_strvec *sv) {
 void gpr_strvec_add(gpr_strvec *sv, char *str) {
   if (sv->count == sv->capacity) {
     sv->capacity = GPR_MAX(sv->capacity + 8, sv->capacity * 2);
-    sv->strs = gpr_realloc(sv->strs, sizeof(char*) * sv->capacity);
+    sv->strs = gpr_realloc(sv->strs, sizeof(char *) * sv->capacity);
   }
   sv->strs[sv->count++] = str;
 }
 
 char *gpr_strvec_flatten(gpr_strvec *sv, size_t *final_length) {
-  return gpr_strjoin((const char**)sv->strs, sv->count, final_length);
+  return gpr_strjoin((const char **)sv->strs, sv->count, final_length);
 }
diff --git a/src/core/support/string.h b/src/core/support/string.h
index 3ac4abeef85b2ac5470cf98313273e7a6bf34435..a28e00fd3ec5ab21924af157f72319c4fae51de8 100644
--- a/src/core/support/string.h
+++ b/src/core/support/string.h
@@ -47,7 +47,7 @@ extern "C" {
 /* String utility functions */
 
 /* Flags for gpr_dump function. */
-#define GPR_DUMP_HEX   0x00000001
+#define GPR_DUMP_HEX 0x00000001
 #define GPR_DUMP_ASCII 0x00000002
 
 /* Converts array buf, of length len, into a C string  according to the flags.
@@ -108,4 +108,4 @@ char *gpr_strvec_flatten(gpr_strvec *strs, size_t *total_length);
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_SUPPORT_STRING_H */
+#endif /* GRPC_INTERNAL_CORE_SUPPORT_STRING_H */
diff --git a/src/core/support/string_win32.c b/src/core/support/string_win32.c
index 27b9f3637a68763fbfa9feefaf2892e4a17c0ed5..8ffb0a225e587db7f77fe84a103a833006d20b1f 100644
--- a/src/core/support/string_win32.c
+++ b/src/core/support/string_win32.c
@@ -99,13 +99,9 @@ LPSTR gpr_tchar_to_char(LPCTSTR input) {
   return ret;
 }
 #else
-char *gpr_tchar_to_char(LPTSTR input) {
-  return gpr_strdup(input);
-}
+char *gpr_tchar_to_char(LPTSTR input) { return gpr_strdup(input); }
 
-char *gpr_char_to_tchar(LPTSTR input) {
-  return gpr_strdup(input);
-}
+char *gpr_char_to_tchar(LPTSTR input) { return gpr_strdup(input); }
 #endif
 
 #endif /* GPR_WIN32 */
diff --git a/src/core/support/string_win32.h b/src/core/support/string_win32.h
index 1260aa55c161ac25cc6009ffa1a19f97d3a986b1..e3043656fbaa510dc6bc43c8956c3f14f412f9fd 100644
--- a/src/core/support/string_win32.h
+++ b/src/core/support/string_win32.h
@@ -42,6 +42,6 @@
 LPTSTR gpr_char_to_tchar(LPCSTR input);
 LPSTR gpr_tchar_to_char(LPCTSTR input);
 
-#endif  /* GPR_WIN32 */
+#endif /* GPR_WIN32 */
 
-#endif  /* GRPC_INTERNAL_CORE_SUPPORT_STRING_WIN32_H */
+#endif /* GRPC_INTERNAL_CORE_SUPPORT_STRING_WIN32_H */
diff --git a/src/core/support/sync_posix.c b/src/core/support/sync_posix.c
index 61572b9a8ea436a233696e81f32a11adfb911124..6f078cd4bb6a31a30ed497903d56044e8aa19d67 100644
--- a/src/core/support/sync_posix.c
+++ b/src/core/support/sync_posix.c
@@ -63,7 +63,8 @@ void gpr_cv_destroy(gpr_cv *cv) { GPR_ASSERT(pthread_cond_destroy(cv) == 0); }
 
 int gpr_cv_wait(gpr_cv *cv, gpr_mu *mu, gpr_timespec abs_deadline) {
   int err = 0;
-  if (gpr_time_cmp(abs_deadline, gpr_inf_future(abs_deadline.clock_type)) == 0) {
+  if (gpr_time_cmp(abs_deadline, gpr_inf_future(abs_deadline.clock_type)) ==
+      0) {
     err = pthread_cond_wait(cv, mu);
   } else {
     struct timespec abs_deadline_ts;
diff --git a/src/core/support/sync_win32.c b/src/core/support/sync_win32.c
index 54f84a46ac6ff50aafa90df762c9e4cfb9a59a42..df23492171b3c3f97e542f27b7b4e37468b7bdd6 100644
--- a/src/core/support/sync_win32.c
+++ b/src/core/support/sync_win32.c
@@ -83,7 +83,8 @@ int gpr_cv_wait(gpr_cv *cv, gpr_mu *mu, gpr_timespec abs_deadline) {
   int timeout = 0;
   DWORD timeout_max_ms;
   mu->locked = 0;
-  if (gpr_time_cmp(abs_deadline, gpr_inf_future(abs_deadline.clock_type)) == 0) {
+  if (gpr_time_cmp(abs_deadline, gpr_inf_future(abs_deadline.clock_type)) ==
+      0) {
     SleepConditionVariableCS(cv, &mu->cs, INFINITE);
   } else {
     gpr_timespec now = gpr_now(abs_deadline.clock_type);
diff --git a/src/core/support/thd.c b/src/core/support/thd.c
index ec308f3119efd29d8f9aec56cfec7da2506325a1..32c0db5b66f16bd7203de37efec64e1269d7eda6 100644
--- a/src/core/support/thd.c
+++ b/src/core/support/thd.c
@@ -37,9 +37,7 @@
 
 #include <grpc/support/thd.h>
 
-enum {
-  GPR_THD_JOINABLE = 1
-};
+enum { GPR_THD_JOINABLE = 1 };
 
 gpr_thd_options gpr_thd_options_default(void) {
   gpr_thd_options options;
diff --git a/src/core/support/thd_internal.h b/src/core/support/thd_internal.h
index 4683c37742eb05fffafd6da7fea3a842b9c3b273..1508c4691f249c36326b380755add3db396d8595 100644
--- a/src/core/support/thd_internal.h
+++ b/src/core/support/thd_internal.h
@@ -36,4 +36,4 @@
 
 /* Internal interfaces between modules within the gpr support library.  */
 
-#endif  /* GRPC_INTERNAL_CORE_SUPPORT_THD_INTERNAL_H */
+#endif /* GRPC_INTERNAL_CORE_SUPPORT_THD_INTERNAL_H */
diff --git a/src/core/support/thd_posix.c b/src/core/support/thd_posix.c
index fa4eb505561063569d2c9bd5d457048d073cb9e7..c36d94d044d799be9995b8fd77cfe2376b0f036b 100644
--- a/src/core/support/thd_posix.c
+++ b/src/core/support/thd_posix.c
@@ -69,9 +69,11 @@ int gpr_thd_new(gpr_thd_id *t, void (*thd_body)(void *arg), void *arg,
 
   GPR_ASSERT(pthread_attr_init(&attr) == 0);
   if (gpr_thd_options_is_detached(options)) {
-    GPR_ASSERT(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) == 0);
+    GPR_ASSERT(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED) ==
+               0);
   } else {
-    GPR_ASSERT(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE) == 0);
+    GPR_ASSERT(pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_JOINABLE) ==
+               0);
   }
   thread_started = (pthread_create(&p, &attr, &thread_body, a) == 0);
   GPR_ASSERT(pthread_attr_destroy(&attr) == 0);
@@ -82,12 +84,8 @@ int gpr_thd_new(gpr_thd_id *t, void (*thd_body)(void *arg), void *arg,
   return thread_started;
 }
 
-gpr_thd_id gpr_thd_currentid(void) {
-  return (gpr_thd_id)pthread_self();
-}
+gpr_thd_id gpr_thd_currentid(void) { return (gpr_thd_id)pthread_self(); }
 
-void gpr_thd_join(gpr_thd_id t) {
-  pthread_join((pthread_t)t, NULL);
-}
+void gpr_thd_join(gpr_thd_id t) { pthread_join((pthread_t)t, NULL); }
 
 #endif /* GPR_POSIX_SYNC */
diff --git a/src/core/support/thd_win32.c b/src/core/support/thd_win32.c
index 4fa3907444f336acd913465c160ff41962fe6556..a9db180c1b057490da6dc366ab439ad33df214f2 100644
--- a/src/core/support/thd_win32.c
+++ b/src/core/support/thd_win32.c
@@ -105,9 +105,7 @@ int gpr_thd_new(gpr_thd_id *t, void (*thd_body)(void *arg), void *arg,
   return handle != NULL;
 }
 
-gpr_thd_id gpr_thd_currentid(void) {
-  return (gpr_thd_id)g_thd_info;
-}
+gpr_thd_id gpr_thd_currentid(void) { return (gpr_thd_id)g_thd_info; }
 
 void gpr_thd_join(gpr_thd_id t) {
   struct thd_info *info = (struct thd_info *)t;
diff --git a/src/core/support/time.c b/src/core/support/time.c
index b523ae01cce28d09f7306b88b814d792ba07ef68..929adac918cf2108a02e208e7accd5220f0cedff 100644
--- a/src/core/support/time.c
+++ b/src/core/support/time.c
@@ -315,5 +315,6 @@ gpr_timespec gpr_convert_clock_type(gpr_timespec t, gpr_clock_type clock_type) {
     return gpr_time_add(gpr_now(clock_type), t);
   }
 
-  return gpr_time_add(gpr_now(clock_type), gpr_time_sub(t, gpr_now(t.clock_type)));
+  return gpr_time_add(gpr_now(clock_type),
+                      gpr_time_sub(t, gpr_now(t.clock_type)));
 }
diff --git a/src/core/support/tls_pthread.c b/src/core/support/tls_pthread.c
index f2e76a553fac413e7094e80db2399ebc5dc42f84..2d28226fc472b599df631e84a36722ac44d303b5 100644
--- a/src/core/support/tls_pthread.c
+++ b/src/core/support/tls_pthread.c
@@ -38,7 +38,7 @@
 #include <grpc/support/tls.h>
 
 gpr_intptr gpr_tls_set(struct gpr_pthread_thread_local *tls, gpr_intptr value) {
-  GPR_ASSERT(0 == pthread_setspecific(tls->key, (void*)value));
+  GPR_ASSERT(0 == pthread_setspecific(tls->key, (void *)value));
   return value;
 }
 
diff --git a/src/core/surface/byte_buffer_queue.h b/src/core/surface/byte_buffer_queue.h
index f01958984f9fb07b63a2f5ee6181e4d60323d5fc..2c3b22d24e99b51dc5db70470962cc034d07f9bc 100644
--- a/src/core/surface/byte_buffer_queue.h
+++ b/src/core/surface/byte_buffer_queue.h
@@ -59,4 +59,4 @@ int grpc_bbq_empty(grpc_byte_buffer_queue *q);
 void grpc_bbq_push(grpc_byte_buffer_queue *q, grpc_byte_buffer *bb);
 size_t grpc_bbq_bytes(grpc_byte_buffer_queue *q);
 
-#endif  /* GRPC_INTERNAL_CORE_SURFACE_BYTE_BUFFER_QUEUE_H */
+#endif /* GRPC_INTERNAL_CORE_SURFACE_BYTE_BUFFER_QUEUE_H */
diff --git a/src/core/surface/call.c b/src/core/surface/call.c
index 6a1a6cbf30570982471f36e0c588589ffd9207be..4426bbbce9f366f7fbee3a5b44e77bc49147fefc 100644
--- a/src/core/surface/call.c
+++ b/src/core/surface/call.c
@@ -39,6 +39,7 @@
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/string_util.h>
+#include <grpc/support/useful.h>
 
 #include "src/core/channel/channel_stack.h"
 #include "src/core/iomgr/alarm.h"
@@ -242,6 +243,9 @@ struct grpc_call {
   /* Compression algorithm for the call */
   grpc_compression_algorithm compression_algorithm;
 
+  /* Supported encodings (compression algorithms), a bitset */
+  gpr_uint32 encodings_accepted_by_peer;
+
   /* Contexts for various subsystems (security, tracing, ...). */
   grpc_call_context_element context[GRPC_CONTEXT_COUNT];
 
@@ -272,7 +276,8 @@ struct grpc_call {
   /** completion events - for completion queue use */
   grpc_cq_completion completions[MAX_CONCURRENT_COMPLETIONS];
 
-  /** siblings: children of the same parent form a list, and this list is protected under
+  /** siblings: children of the same parent form a list, and this list is
+     protected under
       parent->mu */
   grpc_call *sibling_next;
   grpc_call *sibling_prev;
@@ -394,7 +399,8 @@ grpc_call *grpc_call_create(grpc_channel *channel, grpc_call *parent_call,
     } else {
       call->sibling_next = parent_call->first_child;
       call->sibling_prev = parent_call->first_child->sibling_prev;
-      call->sibling_next->sibling_prev = call->sibling_prev->sibling_next = call;
+      call->sibling_next->sibling_prev = call->sibling_prev->sibling_next =
+          call;
     }
 
     gpr_mu_unlock(&parent_call->mu);
@@ -532,6 +538,45 @@ grpc_compression_algorithm grpc_call_get_compression_algorithm(
   return call->compression_algorithm;
 }
 
+static void set_encodings_accepted_by_peer(
+    grpc_call *call, const gpr_slice accept_encoding_slice) {
+  size_t i;
+  grpc_compression_algorithm algorithm;
+  gpr_slice_buffer accept_encoding_parts;
+
+  gpr_slice_buffer_init(&accept_encoding_parts);
+  gpr_slice_split(accept_encoding_slice, ", ", &accept_encoding_parts);
+
+  /* No need to zero call->encodings_accepted_by_peer: grpc_call_create already
+   * zeroes the whole grpc_call */
+  /* Always support no compression */
+  GPR_BITSET(&call->encodings_accepted_by_peer, GRPC_COMPRESS_NONE);
+  for (i = 0; i < accept_encoding_parts.count; i++) {
+    const gpr_slice *accept_encoding_entry_slice =
+        &accept_encoding_parts.slices[i];
+    if (grpc_compression_algorithm_parse(
+            (const char *)GPR_SLICE_START_PTR(*accept_encoding_entry_slice),
+            GPR_SLICE_LENGTH(*accept_encoding_entry_slice), &algorithm)) {
+      GPR_BITSET(&call->encodings_accepted_by_peer, algorithm);
+    } else {
+      char *accept_encoding_entry_str =
+          gpr_dump_slice(*accept_encoding_entry_slice, GPR_DUMP_ASCII);
+      gpr_log(GPR_ERROR,
+              "Invalid entry in accept encoding metadata: '%s'. Ignoring.",
+              accept_encoding_entry_str);
+      gpr_free(accept_encoding_entry_str);
+    }
+  }
+}
+
+gpr_uint32 grpc_call_get_encodings_accepted_by_peer(grpc_call *call) {
+  return call->encodings_accepted_by_peer;
+}
+
+gpr_uint32 grpc_call_get_message_flags(const grpc_call *call) {
+  return call->incoming_message_flags;
+}
+
 static void set_status_details(grpc_call *call, status_source source,
                                grpc_mdstr *status) {
   if (call->status[source].details != NULL) {
@@ -1001,10 +1046,11 @@ static int prepare_application_metadata(grpc_call *call, size_t count,
                                                (const gpr_uint8 *)md->value,
                                                md->value_length, 1);
     if (!grpc_mdstr_is_legal_header(l->md->key)) {
-      gpr_log(GPR_ERROR, "attempt to send invalid metadata key");
+      gpr_log(GPR_ERROR, "attempt to send invalid metadata key: %s",
+              grpc_mdstr_as_c_string(l->md->key));
       return 0;
     } else if (!grpc_mdstr_is_bin_suffixed(l->md->key) &&
-               !grpc_mdstr_is_legal_header(l->md->value)) {
+               !grpc_mdstr_is_legal_nonbin_header(l->md->value)) {
       gpr_log(GPR_ERROR, "attempt to send invalid metadata value");
       return 0;
     }
@@ -1280,7 +1326,7 @@ grpc_call_error grpc_call_cancel_with_status(grpc_call *c,
                                              const char *description,
                                              void *reserved) {
   grpc_call_error r;
-  (void) reserved;
+  (void)reserved;
   lock(c);
   r = cancel_with_status(c, status, description);
   unlock(c);
@@ -1408,10 +1454,11 @@ static gpr_uint32 decode_compression(grpc_mdelem *md) {
   void *user_data = grpc_mdelem_get_user_data(md, destroy_compression);
   if (user_data) {
     algorithm =
-        ((grpc_compression_level)(gpr_intptr)user_data) - COMPRESS_OFFSET;
+        ((grpc_compression_algorithm)(gpr_intptr)user_data) - COMPRESS_OFFSET;
   } else {
     const char *md_c_str = grpc_mdstr_as_c_string(md->value);
-    if (!grpc_compression_algorithm_parse(md_c_str, &algorithm)) {
+    if (!grpc_compression_algorithm_parse(md_c_str, strlen(md_c_str),
+                                          &algorithm)) {
       gpr_log(GPR_ERROR, "Invalid compression algorithm: '%s'", md_c_str);
       assert(0);
     }
@@ -1440,6 +1487,9 @@ static void recv_metadata(grpc_call *call, grpc_metadata_batch *md) {
     } else if (key ==
                grpc_channel_get_compression_algorithm_string(call->channel)) {
       set_compression_algorithm(call, decode_compression(md));
+    } else if (key == grpc_channel_get_encodings_accepted_by_peer_string(
+                          call->channel)) {
+      set_encodings_accepted_by_peer(call, md->value->slice);
     } else {
       dest = &call->buffered_metadata[is_trailing];
       if (dest->count == dest->capacity) {
@@ -1524,7 +1574,8 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
   const grpc_op *op;
   grpc_ioreq *req;
   void (*finish_func)(grpc_call *, int, void *) = finish_batch;
-  GPR_ASSERT(!reserved);
+
+  if (reserved != NULL) return GRPC_CALL_ERROR;
 
   GRPC_CALL_LOG_BATCH(GPR_INFO, call, ops, nops, tag);
 
@@ -1539,12 +1590,13 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
   /* rewrite batch ops into ioreq ops */
   for (in = 0, out = 0; in < nops; in++) {
     op = &ops[in];
+    if (op->reserved != NULL) return GRPC_CALL_ERROR;
     switch (op->op) {
       case GRPC_OP_SEND_INITIAL_METADATA:
         /* Flag validation: currently allow no flags */
         if (op->flags != 0) return GRPC_CALL_ERROR_INVALID_FLAGS;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_SEND_INITIAL_METADATA;
         req->data.send_metadata.count = op->data.send_initial_metadata.count;
         req->data.send_metadata.metadata =
@@ -1559,7 +1611,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
           return GRPC_CALL_ERROR_INVALID_MESSAGE;
         }
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_SEND_MESSAGE;
         req->data.send_message = op->data.send_message;
         req->flags = op->flags;
@@ -1571,7 +1623,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
           return GRPC_CALL_ERROR_NOT_ON_SERVER;
         }
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_SEND_CLOSE;
         req->flags = op->flags;
         break;
@@ -1582,7 +1634,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
           return GRPC_CALL_ERROR_NOT_ON_CLIENT;
         }
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_SEND_TRAILING_METADATA;
         req->flags = op->flags;
         req->data.send_metadata.count =
@@ -1590,7 +1642,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
         req->data.send_metadata.metadata =
             op->data.send_status_from_server.trailing_metadata;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_SEND_STATUS;
         req->data.send_status.code = op->data.send_status_from_server.status;
         req->data.send_status.details =
@@ -1600,7 +1652,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
                       op->data.send_status_from_server.status_details, 0)
                 : NULL;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_SEND_CLOSE;
         break;
       case GRPC_OP_RECV_INITIAL_METADATA:
@@ -1610,7 +1662,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
           return GRPC_CALL_ERROR_NOT_ON_SERVER;
         }
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_INITIAL_METADATA;
         req->data.recv_metadata = op->data.recv_initial_metadata;
         req->data.recv_metadata->count = 0;
@@ -1620,7 +1672,7 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
         /* Flag validation: currently allow no flags */
         if (op->flags != 0) return GRPC_CALL_ERROR_INVALID_FLAGS;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_MESSAGE;
         req->data.recv_message = op->data.recv_message;
         req->flags = op->flags;
@@ -1632,26 +1684,26 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
           return GRPC_CALL_ERROR_NOT_ON_SERVER;
         }
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_STATUS;
         req->flags = op->flags;
         req->data.recv_status.set_value = set_status_value_directly;
         req->data.recv_status.user_data = op->data.recv_status_on_client.status;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_STATUS_DETAILS;
         req->data.recv_status_details.details =
             op->data.recv_status_on_client.status_details;
         req->data.recv_status_details.details_capacity =
             op->data.recv_status_on_client.status_details_capacity;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_TRAILING_METADATA;
         req->data.recv_metadata =
             op->data.recv_status_on_client.trailing_metadata;
         req->data.recv_metadata->count = 0;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_CLOSE;
         finish_func = finish_batch_with_close;
         break;
@@ -1659,14 +1711,14 @@ grpc_call_error grpc_call_start_batch(grpc_call *call, const grpc_op *ops,
         /* Flag validation: currently allow no flags */
         if (op->flags != 0) return GRPC_CALL_ERROR_INVALID_FLAGS;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_STATUS;
         req->flags = op->flags;
         req->data.recv_status.set_value = set_cancelled_value;
         req->data.recv_status.user_data =
             op->data.recv_close_on_server.cancelled;
         req = &reqs[out++];
-	if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
+        if (out > GRPC_IOREQ_OP_COUNT) return GRPC_CALL_ERROR_BATCH_TOO_BIG;
         req->op = GRPC_IOREQ_RECV_CLOSE;
         finish_func = finish_batch_with_close;
         break;
diff --git a/src/core/surface/call.h b/src/core/surface/call.h
index 75bdbce980f914ee63de8198eb6137fdbc8ba9ef..00638e43b5fabefcfe34647580f8868e77307929 100644
--- a/src/core/surface/call.h
+++ b/src/core/surface/call.h
@@ -38,6 +38,10 @@
 #include "src/core/channel/context.h"
 #include <grpc/grpc.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Primitive operation types - grpc_op's get rewritten into these */
 typedef enum {
   GRPC_IOREQ_RECV_INITIAL_METADATA,
@@ -162,4 +166,19 @@ void *grpc_call_context_get(grpc_call *call, grpc_context_index elem);
 
 gpr_uint8 grpc_call_is_client(grpc_call *call);
 
+grpc_compression_algorithm grpc_call_get_compression_algorithm(
+    const grpc_call *call);
+
+gpr_uint32 grpc_call_get_message_flags(const grpc_call *call);
+
+/** Returns a bitset for the encodings (compression algorithms) supported by \a
+ * call's peer.
+ *
+ * To be indexed by grpc_compression_algorithm enum values. */
+gpr_uint32 grpc_call_get_encodings_accepted_by_peer(grpc_call *call);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif /* GRPC_INTERNAL_CORE_SURFACE_CALL_H */
diff --git a/src/core/surface/call_log_batch.c b/src/core/surface/call_log_batch.c
index 7bf8cafc2414a719dd81c3fa6ca13811a7e48888..5a3ef1e5f4b5f83905cdcd6010032dba98b0b0c6 100644
--- a/src/core/surface/call_log_batch.c
+++ b/src/core/surface/call_log_batch.c
@@ -41,7 +41,7 @@ int grpc_trace_batch = 0;
 
 static void add_metadata(gpr_strvec *b, const grpc_metadata *md, size_t count) {
   size_t i;
-  for(i = 0; i < count; i++) {
+  for (i = 0; i < count; i++) {
     gpr_strvec_add(b, gpr_strdup("\nkey="));
     gpr_strvec_add(b, gpr_strdup(md[i].key));
 
@@ -113,8 +113,9 @@ void grpc_call_log_batch(char *file, int line, gpr_log_severity severity,
   char *tmp;
   size_t i;
   gpr_log(file, line, severity,
-          "grpc_call_start_batch(call=%p, ops=%p, nops=%d, tag=%p)", call, ops, nops, tag);
-  for(i = 0; i < nops; i++) {
+          "grpc_call_start_batch(call=%p, ops=%p, nops=%d, tag=%p)", call, ops,
+          nops, tag);
+  for (i = 0; i < nops; i++) {
     tmp = grpc_op_string(&ops[i]);
     gpr_log(file, line, severity, "ops[%d]: %s", i, tmp);
     gpr_free(tmp);
@@ -123,8 +124,7 @@ void grpc_call_log_batch(char *file, int line, gpr_log_severity severity,
 
 void grpc_server_log_request_call(char *file, int line,
                                   gpr_log_severity severity,
-                                  grpc_server *server,
-                                  grpc_call **call,
+                                  grpc_server *server, grpc_call **call,
                                   grpc_call_details *details,
                                   grpc_metadata_array *initial_metadata,
                                   grpc_completion_queue *cq_bound_to_call,
@@ -133,8 +133,9 @@ void grpc_server_log_request_call(char *file, int line,
   gpr_log(file, line, severity,
           "grpc_server_request_call(server=%p, call=%p, details=%p, "
           "initial_metadata=%p, cq_bound_to_call=%p, cq_for_notification=%p, "
-          "tag=%p)", server, call, details, initial_metadata,
-          cq_bound_to_call, cq_for_notification, tag);
+          "tag=%p)",
+          server, call, details, initial_metadata, cq_bound_to_call,
+          cq_for_notification, tag);
 }
 
 void grpc_server_log_shutdown(char *file, int line, gpr_log_severity severity,
diff --git a/src/core/surface/channel.c b/src/core/surface/channel.c
index 308572c6342a8e144bead60c1847be3cabf59456..e50251566d592d69f80c5cf55d8d42fa14421838 100644
--- a/src/core/surface/channel.c
+++ b/src/core/surface/channel.c
@@ -66,6 +66,7 @@ struct grpc_channel {
   /** mdstr for the grpc-status key */
   grpc_mdstr *grpc_status_string;
   grpc_mdstr *grpc_compression_algorithm_string;
+  grpc_mdstr *grpc_encodings_accepted_by_peer_string;
   grpc_mdstr *grpc_message_string;
   grpc_mdstr *path_string;
   grpc_mdstr *authority_string;
@@ -104,7 +105,10 @@ grpc_channel *grpc_channel_create_from_filters(
   channel->grpc_status_string = grpc_mdstr_from_string(mdctx, "grpc-status", 0);
   channel->grpc_compression_algorithm_string =
       grpc_mdstr_from_string(mdctx, "grpc-encoding", 0);
-  channel->grpc_message_string = grpc_mdstr_from_string(mdctx, "grpc-message", 0);
+  channel->grpc_encodings_accepted_by_peer_string =
+      grpc_mdstr_from_string(mdctx, "grpc-accept-encoding", 0);
+  channel->grpc_message_string =
+      grpc_mdstr_from_string(mdctx, "grpc-message", 0);
   for (i = 0; i < NUM_CACHED_STATUS_ELEMS; i++) {
     char buf[GPR_LTOA_MIN_BUFSIZE];
     gpr_ltoa(i, buf);
@@ -159,7 +163,7 @@ static grpc_call *grpc_channel_create_call_internal(
     send_metadata[num_metadata++] = authority_mdelem;
   }
 
-  return grpc_call_create(channel, parent_call, propagation_mask, cq, NULL, 
+  return grpc_call_create(channel, parent_call, propagation_mask, cq, NULL,
                           send_metadata, num_metadata, deadline);
 }
 
@@ -175,10 +179,11 @@ grpc_call *grpc_channel_create_call(grpc_channel *channel,
       grpc_mdelem_from_metadata_strings(
           channel->metadata_context, GRPC_MDSTR_REF(channel->path_string),
           grpc_mdstr_from_string(channel->metadata_context, method, 0)),
-      host ?
-      grpc_mdelem_from_metadata_strings(
-          channel->metadata_context, GRPC_MDSTR_REF(channel->authority_string),
-          grpc_mdstr_from_string(channel->metadata_context, host, 0)) : NULL,
+      host ? grpc_mdelem_from_metadata_strings(
+                 channel->metadata_context,
+                 GRPC_MDSTR_REF(channel->authority_string),
+                 grpc_mdstr_from_string(channel->metadata_context, host, 0))
+           : NULL,
       deadline);
 }
 
@@ -189,9 +194,12 @@ void *grpc_channel_register_call(grpc_channel *channel, const char *method,
   rc->path = grpc_mdelem_from_metadata_strings(
       channel->metadata_context, GRPC_MDSTR_REF(channel->path_string),
       grpc_mdstr_from_string(channel->metadata_context, method, 0));
-  rc->authority = host ? grpc_mdelem_from_metadata_strings(
-      channel->metadata_context, GRPC_MDSTR_REF(channel->authority_string),
-      grpc_mdstr_from_string(channel->metadata_context, host, 0)) : NULL;
+  rc->authority =
+      host ? grpc_mdelem_from_metadata_strings(
+                 channel->metadata_context,
+                 GRPC_MDSTR_REF(channel->authority_string),
+                 grpc_mdstr_from_string(channel->metadata_context, host, 0))
+           : NULL;
   gpr_mu_lock(&channel->registered_call_mu);
   rc->next = channel->registered_calls;
   channel->registered_calls = rc;
@@ -206,8 +214,8 @@ grpc_call *grpc_channel_create_registered_call(
   registered_call *rc = registered_call_handle;
   GPR_ASSERT(!reserved);
   return grpc_channel_create_call_internal(
-      channel, parent_call, propagation_mask, completion_queue, 
-      GRPC_MDELEM_REF(rc->path), 
+      channel, parent_call, propagation_mask, completion_queue,
+      GRPC_MDELEM_REF(rc->path),
       rc->authority ? GRPC_MDELEM_REF(rc->authority) : NULL, deadline);
 }
 
@@ -230,6 +238,7 @@ static void destroy_channel(void *p, int ok) {
   }
   GRPC_MDSTR_UNREF(channel->grpc_status_string);
   GRPC_MDSTR_UNREF(channel->grpc_compression_algorithm_string);
+  GRPC_MDSTR_UNREF(channel->grpc_encodings_accepted_by_peer_string);
   GRPC_MDSTR_UNREF(channel->grpc_message_string);
   GRPC_MDSTR_UNREF(channel->path_string);
   GRPC_MDSTR_UNREF(channel->authority_string);
@@ -290,6 +299,11 @@ grpc_mdstr *grpc_channel_get_compression_algorithm_string(
   return channel->grpc_compression_algorithm_string;
 }
 
+grpc_mdstr *grpc_channel_get_encodings_accepted_by_peer_string(
+    grpc_channel *channel) {
+  return channel->grpc_encodings_accepted_by_peer_string;
+}
+
 grpc_mdelem *grpc_channel_get_reffed_status_elem(grpc_channel *channel, int i) {
   if (i >= 0 && i < NUM_CACHED_STATUS_ELEMS) {
     return GRPC_MDELEM_REF(channel->grpc_status_elem[i]);
diff --git a/src/core/surface/channel.h b/src/core/surface/channel.h
index 9e0646efaa90bead0ff656976d932220cebb8c80..f271616f6063bafe4ecc553a347c723e9154f7fb 100644
--- a/src/core/surface/channel.h
+++ b/src/core/surface/channel.h
@@ -56,6 +56,8 @@ grpc_mdelem *grpc_channel_get_reffed_status_elem(grpc_channel *channel,
 grpc_mdstr *grpc_channel_get_status_string(grpc_channel *channel);
 grpc_mdstr *grpc_channel_get_compression_algorithm_string(
     grpc_channel *channel);
+grpc_mdstr *grpc_channel_get_encodings_accepted_by_peer_string(
+    grpc_channel *channel);
 grpc_mdstr *grpc_channel_get_message_string(grpc_channel *channel);
 gpr_uint32 grpc_channel_get_max_message_length(grpc_channel *channel);
 
diff --git a/src/core/surface/channel_connectivity.c b/src/core/surface/channel_connectivity.c
index 122370645759a47be2274026408a10eba7301bed..88a7c165985bd3a84de6e11fa5bdd5424244984c 100644
--- a/src/core/surface/channel_connectivity.c
+++ b/src/core/surface/channel_connectivity.c
@@ -77,9 +77,10 @@ typedef struct {
 } state_watcher;
 
 static void delete_state_watcher(state_watcher *w) {
-  grpc_channel_element *client_channel_elem =
-      grpc_channel_stack_last_element(grpc_channel_get_channel_stack(w->channel));
-  grpc_client_channel_del_interested_party(client_channel_elem, grpc_cq_pollset(w->cq));
+  grpc_channel_element *client_channel_elem = grpc_channel_stack_last_element(
+      grpc_channel_get_channel_stack(w->channel));
+  grpc_client_channel_del_interested_party(client_channel_elem,
+                                           grpc_cq_pollset(w->cq));
   GRPC_CHANNEL_INTERNAL_UNREF(w->channel, "watch_connectivity");
   gpr_mu_destroy(&w->mu);
   gpr_free(w);
@@ -166,9 +167,9 @@ void grpc_channel_watch_connectivity_state(
   w->tag = tag;
   w->channel = channel;
 
-  grpc_alarm_init(
-      &w->alarm, gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC), 
-      timeout_complete, w, gpr_now(GPR_CLOCK_MONOTONIC));
+  grpc_alarm_init(&w->alarm,
+                  gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC),
+                  timeout_complete, w, gpr_now(GPR_CLOCK_MONOTONIC));
 
   if (client_channel_elem->filter != &grpc_client_channel_filter) {
     gpr_log(GPR_ERROR,
@@ -178,7 +179,8 @@ void grpc_channel_watch_connectivity_state(
     grpc_iomgr_add_delayed_callback(&w->on_complete, 1);
   } else {
     GRPC_CHANNEL_INTERNAL_REF(channel, "watch_connectivity");
-    grpc_client_channel_add_interested_party(client_channel_elem, grpc_cq_pollset(cq));
+    grpc_client_channel_add_interested_party(client_channel_elem,
+                                             grpc_cq_pollset(cq));
     grpc_client_channel_watch_connectivity_state(client_channel_elem, &w->state,
                                                  &w->on_complete);
   }
diff --git a/src/core/surface/channel_create.c b/src/core/surface/channel_create.c
index 82ddfac757f4fbd41f2d38967ae6a42c454d84bc..707251da8958acddc77f2ad6e062eb1fc85e6eed 100644
--- a/src/core/surface/channel_create.c
+++ b/src/core/surface/channel_create.c
@@ -38,6 +38,7 @@
 
 #include <grpc/support/alloc.h>
 
+#include "src/core/census/grpc_filter.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/channel/client_channel.h"
 #include "src/core/channel/compress_filter.h"
@@ -165,10 +166,9 @@ grpc_channel *grpc_insecure_channel_create(const char *target,
   grpc_mdctx *mdctx = grpc_mdctx_create();
   int n = 0;
   GPR_ASSERT(!reserved);
-  /* TODO(census)
   if (grpc_channel_args_is_census_enabled(args)) {
     filters[n++] = &grpc_client_census_filter;
-    } */
+  }
   filters[n++] = &grpc_compress_filter;
   filters[n++] = &grpc_client_channel_filter;
   GPR_ASSERT(n <= MAX_FILTERS);
diff --git a/src/core/surface/completion_queue.c b/src/core/surface/completion_queue.c
index 378b3f71a1c49ed5f746fc6101f71b3fa6425e6a..b58115a93f8aac1091d2aaa2bc99a1eb3d80f77a 100644
--- a/src/core/surface/completion_queue.c
+++ b/src/core/surface/completion_queue.c
@@ -167,10 +167,12 @@ void grpc_cq_end_op(grpc_completion_queue *cc, void *tag, int success,
 }
 
 grpc_event grpc_completion_queue_next(grpc_completion_queue *cc,
-                                      gpr_timespec deadline,
-                                      void *reserved) {
+                                      gpr_timespec deadline, void *reserved) {
   grpc_event ret;
   grpc_pollset_worker worker;
+  int first_loop = 1;
+  gpr_timespec now;
+
   GPR_ASSERT(!reserved);
 
   deadline = gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC);
@@ -197,12 +199,15 @@ grpc_event grpc_completion_queue_next(grpc_completion_queue *cc,
       ret.type = GRPC_QUEUE_SHUTDOWN;
       break;
     }
-    if (!grpc_pollset_work(&cc->pollset, &worker, deadline)) {
+    now = gpr_now(GPR_CLOCK_MONOTONIC);
+    if (!first_loop && gpr_time_cmp(now, deadline) >= 0) {
       gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset));
       memset(&ret, 0, sizeof(ret));
       ret.type = GRPC_QUEUE_TIMEOUT;
       break;
     }
+    first_loop = 0;
+    grpc_pollset_work(&cc->pollset, &worker, now, deadline);
   }
   GRPC_SURFACE_TRACE_RETURNED_EVENT(cc, &ret);
   GRPC_CQ_INTERNAL_UNREF(cc, "next");
@@ -240,6 +245,9 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
   grpc_cq_completion *c;
   grpc_cq_completion *prev;
   grpc_pollset_worker worker;
+  gpr_timespec now;
+  int first_loop = 1;
+
   GPR_ASSERT(!reserved);
 
   deadline = gpr_convert_clock_type(deadline, GPR_CLOCK_MONOTONIC);
@@ -272,8 +280,9 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
       break;
     }
     if (!add_plucker(cc, tag, &worker)) {
-      gpr_log(GPR_DEBUG, 
-              "Too many outstanding grpc_completion_queue_pluck calls: maximum is %d",
+      gpr_log(GPR_DEBUG,
+              "Too many outstanding grpc_completion_queue_pluck calls: maximum "
+              "is %d",
               GRPC_MAX_COMPLETION_QUEUE_PLUCKERS);
       gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset));
       memset(&ret, 0, sizeof(ret));
@@ -281,13 +290,16 @@ grpc_event grpc_completion_queue_pluck(grpc_completion_queue *cc, void *tag,
       ret.type = GRPC_QUEUE_TIMEOUT;
       break;
     }
-    if (!grpc_pollset_work(&cc->pollset, &worker, deadline)) {
+    now = gpr_now(GPR_CLOCK_MONOTONIC);
+    if (!first_loop && gpr_time_cmp(now, deadline) >= 0) {
       del_plucker(cc, tag, &worker);
       gpr_mu_unlock(GRPC_POLLSET_MU(&cc->pollset));
       memset(&ret, 0, sizeof(ret));
       ret.type = GRPC_QUEUE_TIMEOUT;
       break;
     }
+    first_loop = 0;
+    grpc_pollset_work(&cc->pollset, &worker, now, deadline);
     del_plucker(cc, tag, &worker);
   }
 done:
diff --git a/src/core/surface/event_string.h b/src/core/surface/event_string.h
index e8a8f935180c57576b3138ca01771f44c5594549..07c474e3a021a4a42ef976692ce13258fcb7a572 100644
--- a/src/core/surface/event_string.h
+++ b/src/core/surface/event_string.h
@@ -39,4 +39,4 @@
 /* Returns a string describing an event. Must be later freed with gpr_free() */
 char *grpc_event_string(grpc_event *ev);
 
-#endif  /* GRPC_INTERNAL_CORE_SURFACE_EVENT_STRING_H */
+#endif /* GRPC_INTERNAL_CORE_SURFACE_EVENT_STRING_H */
diff --git a/src/core/surface/init.h b/src/core/surface/init.h
index 416874020d7c79b090b2e66487d443b15febd93a..771c30f41257848118b5faf2dce2e07230f73a38 100644
--- a/src/core/surface/init.h
+++ b/src/core/surface/init.h
@@ -37,4 +37,4 @@
 void grpc_security_pre_init(void);
 int grpc_is_initialized(void);
 
-#endif  /* GRPC_INTERNAL_CORE_SURFACE_INIT_H */
+#endif /* GRPC_INTERNAL_CORE_SURFACE_INIT_H */
diff --git a/src/core/surface/init_unsecure.c b/src/core/surface/init_unsecure.c
index ddb70cef8e94f0693df4b67c1a878c197a2b3cd3..630d564a7d849c4bb6b2f57fc582e4704dd2e356 100644
--- a/src/core/surface/init_unsecure.c
+++ b/src/core/surface/init_unsecure.c
@@ -33,5 +33,4 @@
 
 #include "src/core/surface/init.h"
 
-void grpc_security_pre_init(void) {
-}
+void grpc_security_pre_init(void) {}
diff --git a/src/core/surface/lame_client.c b/src/core/surface/lame_client.c
index c4215a2cfb6537a2287a8c31f7fbeba7a5e1de42..80704cbf6775e6a02001a5c2c77defa4e576f4d3 100644
--- a/src/core/surface/lame_client.c
+++ b/src/core/surface/lame_client.c
@@ -50,6 +50,8 @@ typedef struct {
 typedef struct {
   grpc_mdctx *mdctx;
   grpc_channel *master;
+  grpc_status_code error_code;
+  const char *error_message;
 } channel_data;
 
 static void lame_start_transport_stream_op(grpc_call_element *elem,
@@ -64,11 +66,11 @@ static void lame_start_transport_stream_op(grpc_call_element *elem,
   if (op->recv_ops != NULL) {
     char tmp[GPR_LTOA_MIN_BUFSIZE];
     grpc_metadata_batch mdb;
-    gpr_ltoa(GRPC_STATUS_UNKNOWN, tmp);
+    gpr_ltoa(chand->error_code, tmp);
     calld->status.md =
         grpc_mdelem_from_strings(chand->mdctx, "grpc-status", tmp);
     calld->details.md = grpc_mdelem_from_strings(chand->mdctx, "grpc-message",
-                                                 "Rpc sent on a lame channel.");
+                                                 chand->error_message);
     calld->status.prev = calld->details.next = NULL;
     calld->status.next = &calld->details;
     calld->details.prev = &calld->status;
@@ -138,8 +140,21 @@ static const grpc_channel_filter lame_filter = {
     "lame-client",
 };
 
-grpc_channel *grpc_lame_client_channel_create(const char *target) {
+#define CHANNEL_STACK_FROM_CHANNEL(c) ((grpc_channel_stack *)((c) + 1))
+
+grpc_channel *grpc_lame_client_channel_create(const char *target,
+                                              grpc_status_code error_code,
+                                              const char *error_message) {
+  grpc_channel *channel;
+  grpc_channel_element *elem;
+  channel_data *chand;
   static const grpc_channel_filter *filters[] = {&lame_filter};
-  return grpc_channel_create_from_filters(target, filters, 1, NULL,
-                                          grpc_mdctx_create(), 1);
+  channel = grpc_channel_create_from_filters(target, filters, 1, NULL,
+                                             grpc_mdctx_create(), 1);
+  elem = grpc_channel_stack_element(grpc_channel_get_channel_stack(channel), 0);
+  GPR_ASSERT(elem->filter == &lame_filter);
+  chand = (channel_data *)elem->channel_data;
+  chand->error_code = error_code;
+  chand->error_message = error_message;
+  return channel;
 }
diff --git a/src/core/surface/secure_channel_create.c b/src/core/surface/secure_channel_create.c
index c3150250b8c9920413f4f2fce7f77f7adf80d867..eccee24698030465abff84ec105175a47837799d 100644
--- a/src/core/surface/secure_channel_create.c
+++ b/src/core/surface/secure_channel_create.c
@@ -38,6 +38,7 @@
 
 #include <grpc/support/alloc.h>
 
+#include "src/core/census/grpc_filter.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/channel/client_channel.h"
 #include "src/core/channel/compress_filter.h"
@@ -199,13 +200,17 @@ grpc_channel *grpc_secure_channel_create(grpc_credentials *creds,
 
   if (grpc_find_security_connector_in_args(args) != NULL) {
     gpr_log(GPR_ERROR, "Cannot set security context in channel args.");
-    return grpc_lame_client_channel_create(target);
+    return grpc_lame_client_channel_create(
+        target, GRPC_STATUS_INVALID_ARGUMENT,
+        "Security connector exists in channel args.");
   }
 
   if (grpc_credentials_create_security_connector(
           creds, target, args, NULL, &connector, &new_args_from_connector) !=
       GRPC_SECURITY_OK) {
-    return grpc_lame_client_channel_create(target);
+    return grpc_lame_client_channel_create(
+        target, GRPC_STATUS_INVALID_ARGUMENT,
+        "Failed to create security connector.");
   }
   mdctx = grpc_mdctx_create();
 
@@ -213,10 +218,9 @@ grpc_channel *grpc_secure_channel_create(grpc_credentials *creds,
   args_copy = grpc_channel_args_copy_and_add(
       new_args_from_connector != NULL ? new_args_from_connector : args,
       &connector_arg, 1);
-  /* TODO(census)
   if (grpc_channel_args_is_census_enabled(args)) {
     filters[n++] = &grpc_client_census_filter;
-    } */
+  }
   filters[n++] = &grpc_compress_filter;
   filters[n++] = &grpc_client_channel_filter;
   GPR_ASSERT(n <= MAX_FILTERS);
diff --git a/src/core/surface/server.c b/src/core/surface/server.c
index f88327595151cb85433fba0ff7646351151665dd..292bf6fab826f4108ac9948ba8fa44fe24cd741e 100644
--- a/src/core/surface/server.c
+++ b/src/core/surface/server.c
@@ -41,7 +41,7 @@
 #include <grpc/support/string_util.h>
 #include <grpc/support/useful.h>
 
-#include "src/core/channel/census_filter.h"
+#include "src/core/census/grpc_filter.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/channel/connected_channel.h"
 #include "src/core/iomgr/iomgr.h"
@@ -712,7 +712,8 @@ static void init_channel_elem(grpc_channel_element *elem, grpc_channel *master,
   chand->server = NULL;
   chand->channel = NULL;
   chand->path_key = grpc_mdstr_from_string(metadata_context, ":path", 0);
-  chand->authority_key = grpc_mdstr_from_string(metadata_context, ":authority", 0);
+  chand->authority_key =
+      grpc_mdstr_from_string(metadata_context, ":authority", 0);
   chand->next = chand->prev = chand;
   chand->registered_methods = NULL;
   chand->connectivity_state = GRPC_CHANNEL_IDLE;
@@ -820,10 +821,9 @@ grpc_server *grpc_server_create_from_filters(
   server->channel_filters =
       gpr_malloc(server->channel_filter_count * sizeof(grpc_channel_filter *));
   server->channel_filters[0] = &server_surface_filter;
-  /* TODO(census): restore this once we rework census filter
   if (census_enabled) {
     server->channel_filters[1] = &grpc_server_census_filter;
-    } */
+  }
   for (i = 0; i < filter_count; i++) {
     server->channel_filters[i + 1 + census_enabled] = filters[i];
   }
@@ -974,6 +974,11 @@ void grpc_server_setup_transport(grpc_server *s, grpc_transport *transport,
   grpc_transport_perform_op(transport, &op);
 }
 
+void done_published_shutdown(void *done_arg, grpc_cq_completion *storage) {
+  (void) done_arg;
+  gpr_free(storage);
+}
+
 void grpc_server_shutdown_and_notify(grpc_server *server,
                                      grpc_completion_queue *cq, void *tag) {
   listener *l;
@@ -985,6 +990,12 @@ void grpc_server_shutdown_and_notify(grpc_server *server,
   /* lock, and gather up some stuff to do */
   gpr_mu_lock(&server->mu_global);
   grpc_cq_begin_op(cq);
+  if (server->shutdown_published) {
+    grpc_cq_end_op(cq, tag, 1, done_published_shutdown, NULL,
+                   gpr_malloc(sizeof(grpc_cq_completion)));
+    gpr_mu_unlock(&server->mu_global);
+    return;
+  }
   server->shutdown_tags =
       gpr_realloc(server->shutdown_tags,
                   sizeof(shutdown_tag) * (server->num_shutdown_tags + 1));
@@ -1134,6 +1145,7 @@ grpc_call_error grpc_server_request_call(
     return GRPC_CALL_ERROR_NOT_SERVER_COMPLETION_QUEUE;
   }
   grpc_cq_begin_op(cq_for_notification);
+  details->reserved = NULL;
   rc->type = BATCH_CALL;
   rc->server = server;
   rc->tag = tag;
diff --git a/src/core/surface/server_create.c b/src/core/surface/server_create.c
index 9237eb5a9045f7929e21f837156f1327f0906c95..fc7ae820f53187ecb0f8ae8638e0a0696fb25519 100644
--- a/src/core/surface/server_create.c
+++ b/src/core/surface/server_create.c
@@ -38,7 +38,7 @@
 
 grpc_server *grpc_server_create(const grpc_channel_args *args, void *reserved) {
   const grpc_channel_filter *filters[] = {&grpc_compress_filter};
-  (void) reserved;
+  (void)reserved;
   return grpc_server_create_from_filters(filters, GPR_ARRAY_SIZE(filters),
                                          args);
 }
diff --git a/src/core/surface/surface_trace.h b/src/core/surface/surface_trace.h
index 01302bb5d4d7dc16372e9befedef4964c5b902e4..2b4728e2b4b0072915c8a8ed86e29fdaa0ee36dd 100644
--- a/src/core/surface/surface_trace.h
+++ b/src/core/surface/surface_trace.h
@@ -40,10 +40,10 @@
 extern int grpc_surface_trace;
 
 #define GRPC_SURFACE_TRACE_RETURNED_EVENT(cq, event)    \
-  if (grpc_surface_trace) {           \
+  if (grpc_surface_trace) {                             \
     char *_ev = grpc_event_string(event);               \
     gpr_log(GPR_INFO, "RETURN_EVENT[%p]: %s", cq, _ev); \
     gpr_free(_ev);                                      \
   }
 
-#endif  /* GRPC_INTERNAL_CORE_SURFACE_SURFACE_TRACE_H */
+#endif /* GRPC_INTERNAL_CORE_SURFACE_SURFACE_TRACE_H */
diff --git a/src/core/transport/chttp2/frame_data.c b/src/core/transport/chttp2/frame_data.c
index 40bf2ebd790ea23396c523718d767a668bb2b81a..474c3d5ee6c7cff352c2de574ac9911ad74203b7 100644
--- a/src/core/transport/chttp2/frame_data.c
+++ b/src/core/transport/chttp2/frame_data.c
@@ -92,10 +92,10 @@ grpc_chttp2_parse_error grpc_chttp2_data_parser_parse(
       p->frame_type = *cur;
       switch (p->frame_type) {
         case 0:
-          p->is_frame_compressed = 0;  /* GPR_FALSE */
+          p->is_frame_compressed = 0; /* GPR_FALSE */
           break;
         case 1:
-          p->is_frame_compressed = 1;  /* GPR_TRUE */
+          p->is_frame_compressed = 1; /* GPR_TRUE */
           break;
         default:
           gpr_log(GPR_ERROR, "Bad GRPC frame type 0x%02x", p->frame_type);
diff --git a/src/core/transport/chttp2/parsing.c b/src/core/transport/chttp2/parsing.c
index d84960009bd3215bae8e5c42d7d27c21d18134cf..dc5eb18e420315acb70bd57a05f223363d346895 100644
--- a/src/core/transport/chttp2/parsing.c
+++ b/src/core/transport/chttp2/parsing.c
@@ -177,10 +177,9 @@ void grpc_chttp2_publish_reads(
           "parsed", transport_parsing, stream_global, max_recv_bytes,
           -(gpr_int64)stream_parsing->incoming_window_delta);
       stream_global->incoming_window -= stream_parsing->incoming_window_delta;
-      GPR_ASSERT(stream_global->max_recv_bytes >= 
-          stream_parsing->incoming_window_delta);
-      stream_global->max_recv_bytes -= 
-          stream_parsing->incoming_window_delta;
+      GPR_ASSERT(stream_global->max_recv_bytes >=
+                 stream_parsing->incoming_window_delta);
+      stream_global->max_recv_bytes -= stream_parsing->incoming_window_delta;
       stream_parsing->incoming_window_delta = 0;
       grpc_chttp2_list_add_writable_stream(transport_global, stream_global);
     }
diff --git a/src/core/transport/chttp2/stream_encoder.c b/src/core/transport/chttp2/stream_encoder.c
index 0f04169741af7a467390176ea9e1aa816a3739f3..1ea697f71ed7e93aac0c13797073a7dc31cd3a26 100644
--- a/src/core/transport/chttp2/stream_encoder.c
+++ b/src/core/transport/chttp2/stream_encoder.c
@@ -66,6 +66,8 @@ typedef struct {
   size_t header_idx;
   /* was the last frame emitted a header? (if yes, we'll need a CONTINUATION */
   gpr_uint8 last_was_header;
+  /* have we seen a regular (non-colon-prefixed) header yet? */
+  gpr_uint8 seen_regular_header;
   /* output stream id */
   gpr_uint32 stream_id;
   gpr_slice_buffer *output;
@@ -361,6 +363,15 @@ static grpc_mdelem *hpack_enc(grpc_chttp2_hpack_compressor *c,
   gpr_uint32 indices_key;
   int should_add_elem;
 
+  GPR_ASSERT (GPR_SLICE_LENGTH(elem->key->slice) > 0);
+  if (GPR_SLICE_START_PTR(elem->key->slice)[0] != ':') { /* regular header */
+    st->seen_regular_header = 1;
+  } else if (st->seen_regular_header != 0) { /* reserved header */
+    gpr_log(GPR_ERROR,
+            "Reserved header (colon-prefixed) happening after regular ones.");
+    abort();
+  }
+
   inc_filter(HASH_FRAGMENT_1(elem_hash), &c->filter_elems_sum, c->filter_elems);
 
   /* is this elem currently in the decoders table? */
@@ -566,6 +577,7 @@ void grpc_chttp2_encode(grpc_stream_op *ops, size_t ops_count, int eof,
 
   st.cur_frame_type = NONE;
   st.last_was_header = 0;
+  st.seen_regular_header = 0;
   st.stream_id = stream_id;
   st.output = output;
 
diff --git a/src/core/transport/chttp2/stream_lists.c b/src/core/transport/chttp2/stream_lists.c
index 9c3ad7a777fec6ed407333e9836da17b0ae8aa0e..38c6052f9c489049b707e2c2cd6d7ca9b8000bf8 100644
--- a/src/core/transport/chttp2/stream_lists.c
+++ b/src/core/transport/chttp2/stream_lists.c
@@ -363,7 +363,7 @@ void grpc_chttp2_register_stream(grpc_chttp2_transport *t,
 }
 
 int grpc_chttp2_unregister_stream(grpc_chttp2_transport *t,
-                                   grpc_chttp2_stream *s) {
+                                  grpc_chttp2_stream *s) {
   stream_list_maybe_remove(t, s, GRPC_CHTTP2_LIST_ALL_STREAMS);
   return stream_list_empty(t, GRPC_CHTTP2_LIST_ALL_STREAMS);
 }
diff --git a/src/core/transport/chttp2/stream_map.c b/src/core/transport/chttp2/stream_map.c
index 0ec2f2729114190e76aab7a95251f4d8de092f16..bd16153ed1d72782341c6b731bb3eba1b664f3ad 100644
--- a/src/core/transport/chttp2/stream_map.c
+++ b/src/core/transport/chttp2/stream_map.c
@@ -123,8 +123,7 @@ void grpc_chttp2_stream_map_move_into(grpc_chttp2_stream_map *src,
     dst->values = gpr_realloc(dst->values, dst->capacity * sizeof(void *));
   }
   memcpy(dst->keys + dst->count, src->keys, src->count * sizeof(gpr_uint32));
-  memcpy(dst->values + dst->count, src->values,
-         src->count * sizeof(void*));
+  memcpy(dst->values + dst->count, src->values, src->count * sizeof(void *));
   dst->count += src->count;
   dst->free += src->free;
   src->count = 0;
diff --git a/src/core/transport/chttp2/writing.c b/src/core/transport/chttp2/writing.c
index b55e81fdcac74f653a1f978b665c56948e3a0f5c..123061b3fccf769d089232af0d61c3754282d2d7 100644
--- a/src/core/transport/chttp2/writing.c
+++ b/src/core/transport/chttp2/writing.c
@@ -112,13 +112,18 @@ int grpc_chttp2_unlocking_check_writes(
       }
     }
 
-    if (!stream_global->read_closed && stream_global->unannounced_incoming_window > 0) {
-      stream_writing->announce_window = stream_global->unannounced_incoming_window;
-      GRPC_CHTTP2_FLOWCTL_TRACE_STREAM("write", transport_global, stream_global,
-                                       incoming_window, stream_global->unannounced_incoming_window);
-      GRPC_CHTTP2_FLOWCTL_TRACE_STREAM("write", transport_global, stream_global,
-                                       unannounced_incoming_window, -(gpr_int64)stream_global->unannounced_incoming_window);
-      stream_global->incoming_window += stream_global->unannounced_incoming_window;
+    if (!stream_global->read_closed &&
+        stream_global->unannounced_incoming_window > 0) {
+      stream_writing->announce_window =
+          stream_global->unannounced_incoming_window;
+      GRPC_CHTTP2_FLOWCTL_TRACE_STREAM(
+          "write", transport_global, stream_global, incoming_window,
+          stream_global->unannounced_incoming_window);
+      GRPC_CHTTP2_FLOWCTL_TRACE_STREAM(
+          "write", transport_global, stream_global, unannounced_incoming_window,
+          -(gpr_int64)stream_global->unannounced_incoming_window);
+      stream_global->incoming_window +=
+          stream_global->unannounced_incoming_window;
       stream_global->unannounced_incoming_window = 0;
       grpc_chttp2_list_add_incoming_window_updated(transport_global,
                                                    stream_global);
@@ -179,18 +184,20 @@ static void finalize_outbuf(grpc_chttp2_transport_writing *transport_writing) {
 
   while (
       grpc_chttp2_list_pop_writing_stream(transport_writing, &stream_writing)) {
-    if (stream_writing->sopb.nops > 0 || stream_writing->send_closed != GRPC_DONT_SEND_CLOSED) {
+    if (stream_writing->sopb.nops > 0 ||
+        stream_writing->send_closed != GRPC_DONT_SEND_CLOSED) {
       grpc_chttp2_encode(stream_writing->sopb.ops, stream_writing->sopb.nops,
                          stream_writing->send_closed != GRPC_DONT_SEND_CLOSED,
-                         stream_writing->id, &transport_writing->hpack_compressor,
+                         stream_writing->id,
+                         &transport_writing->hpack_compressor,
                          &transport_writing->outbuf);
       stream_writing->sopb.nops = 0;
     }
     if (stream_writing->announce_window > 0) {
       gpr_slice_buffer_add(
           &transport_writing->outbuf,
-          grpc_chttp2_window_update_create(
-              stream_writing->id, stream_writing->announce_window));
+          grpc_chttp2_window_update_create(stream_writing->id,
+                                           stream_writing->announce_window));
       stream_writing->announce_window = 0;
     }
     if (stream_writing->send_closed == GRPC_SEND_CLOSED_WITH_RST_STREAM) {
diff --git a/src/core/transport/chttp2_transport.c b/src/core/transport/chttp2_transport.c
index a9f91b64d57dca427eedc907e43dc0fdfca564ed..1bbd210e4665802bb803a8e36826e99cbdb8d585 100644
--- a/src/core/transport/chttp2_transport.c
+++ b/src/core/transport/chttp2_transport.c
@@ -116,7 +116,7 @@ static void close_from_api(grpc_chttp2_transport_global *transport_global,
 static void add_to_pollset_locked(grpc_chttp2_transport *t,
                                   grpc_pollset *pollset);
 static void add_to_pollset_set_locked(grpc_chttp2_transport *t,
-                                  grpc_pollset_set *pollset_set);
+                                      grpc_pollset_set *pollset_set);
 
 /** Start new streams that have been created if we can */
 static void maybe_start_some_streams(
@@ -368,11 +368,10 @@ static int init_stream(grpc_transport *gt, grpc_stream *gs,
     s->global.outgoing_window =
         t->global.settings[GRPC_PEER_SETTINGS]
                           [GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
-    s->global.max_recv_bytes = 
-        s->parsing.incoming_window = 
+    s->global.max_recv_bytes = s->parsing.incoming_window =
         s->global.incoming_window =
-        t->global.settings[GRPC_SENT_SETTINGS]
-                          [GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
+            t->global.settings[GRPC_SENT_SETTINGS]
+                              [GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
     *t->accepting_stream = s;
     grpc_chttp2_stream_map_add(&t->parsing_stream_map, s->global.id, s);
     s->global.in_stream_map = 1;
@@ -580,7 +579,7 @@ static void maybe_start_some_streams(
     stream_global->incoming_window =
         transport_global->settings[GRPC_SENT_SETTINGS]
                                   [GRPC_CHTTP2_SETTINGS_INITIAL_WINDOW_SIZE];
-    stream_global->max_recv_bytes = 
+    stream_global->max_recv_bytes =
         GPR_MAX(stream_global->incoming_window, stream_global->max_recv_bytes);
     grpc_chttp2_stream_map_add(
         &TRANSPORT_FROM_GLOBAL(transport_global)->new_stream_map,
@@ -590,7 +589,6 @@ static void maybe_start_some_streams(
     grpc_chttp2_list_add_incoming_window_updated(transport_global,
                                                  stream_global);
     grpc_chttp2_list_add_writable_stream(transport_global, stream_global);
-
   }
   /* cancel out streams that will never be started */
   while (transport_global->next_stream_id >= MAX_CLIENT_STREAM_ID &&
@@ -648,12 +646,14 @@ static void perform_stream_op_locked(
     stream_global->publish_sopb->nops = 0;
     stream_global->publish_state = op->recv_state;
     if (stream_global->max_recv_bytes < op->max_recv_bytes) {
-      GRPC_CHTTP2_FLOWCTL_TRACE_STREAM("op", transport_global, stream_global,
-          max_recv_bytes, op->max_recv_bytes - stream_global->max_recv_bytes);
+      GRPC_CHTTP2_FLOWCTL_TRACE_STREAM(
+          "op", transport_global, stream_global, max_recv_bytes,
+          op->max_recv_bytes - stream_global->max_recv_bytes);
       GRPC_CHTTP2_FLOWCTL_TRACE_STREAM(
           "op", transport_global, stream_global, unannounced_incoming_window,
           op->max_recv_bytes - stream_global->max_recv_bytes);
-      stream_global->unannounced_incoming_window += op->max_recv_bytes - stream_global->max_recv_bytes;
+      stream_global->unannounced_incoming_window +=
+          op->max_recv_bytes - stream_global->max_recv_bytes;
       stream_global->max_recv_bytes = op->max_recv_bytes;
     }
     grpc_chttp2_incoming_metadata_live_op_buffer_end(
@@ -1175,7 +1175,7 @@ static void add_to_pollset_locked(grpc_chttp2_transport *t,
 }
 
 static void add_to_pollset_set_locked(grpc_chttp2_transport *t,
-                                  grpc_pollset_set *pollset_set) {
+                                      grpc_pollset_set *pollset_set) {
   if (t->ep) {
     grpc_endpoint_add_to_pollset_set(t->ep, pollset_set);
   }
diff --git a/src/core/transport/metadata.c b/src/core/transport/metadata.c
index 44d32b6cb2bf75359e473eead7d0ae7d773b9c8c..3fd21a2f5dc6c18fd201f2846d7d8b2c3b0a84d4 100644
--- a/src/core/transport/metadata.c
+++ b/src/core/transport/metadata.c
@@ -133,8 +133,8 @@ static void unlock(grpc_mdctx *ctx) {
      case), since otherwise we can be stuck waiting for a garbage collection
      that will never happen. */
   if (ctx->refs == 0) {
-    /* uncomment if you're having trouble diagnosing an mdelem leak to make
-       things clearer (slows down destruction a lot, however) */
+/* uncomment if you're having trouble diagnosing an mdelem leak to make
+   things clearer (slows down destruction a lot, however) */
 #ifdef GRPC_METADATA_REFCOUNT_DEBUG
     gc_mdtab(ctx);
 #endif
@@ -311,7 +311,8 @@ static void slice_unref(void *p) {
   unlock(ctx);
 }
 
-grpc_mdstr *grpc_mdstr_from_string(grpc_mdctx *ctx, const char *str, int canonicalize_key) {
+grpc_mdstr *grpc_mdstr_from_string(grpc_mdctx *ctx, const char *str,
+                                   int canonicalize_key) {
   if (canonicalize_key) {
     size_t len;
     size_t i;
@@ -522,9 +523,9 @@ grpc_mdelem *grpc_mdelem_from_metadata_strings(grpc_mdctx *ctx,
 
 grpc_mdelem *grpc_mdelem_from_strings(grpc_mdctx *ctx, const char *key,
                                       const char *value) {
-  return grpc_mdelem_from_metadata_strings(ctx,
-                                           grpc_mdstr_from_string(ctx, key, 0),
-                                           grpc_mdstr_from_string(ctx, value, 0));
+  return grpc_mdelem_from_metadata_strings(
+      ctx, grpc_mdstr_from_string(ctx, key, 0),
+      grpc_mdstr_from_string(ctx, value, 0));
 }
 
 grpc_mdelem *grpc_mdelem_from_slices(grpc_mdctx *ctx, gpr_slice key,
@@ -680,16 +681,34 @@ void grpc_mdctx_locked_mdelem_unref(grpc_mdctx *ctx,
 
 void grpc_mdctx_unlock(grpc_mdctx *ctx) { unlock(ctx); }
 
-int grpc_mdstr_is_legal_header(grpc_mdstr *s) {
-  /* TODO(ctiller): consider caching this, or computing it on construction */
+static int conforms_to(grpc_mdstr *s, const gpr_uint8 *legal_bits) {
   const gpr_uint8 *p = GPR_SLICE_START_PTR(s->slice);
   const gpr_uint8 *e = GPR_SLICE_END_PTR(s->slice);
   for (; p != e; p++) {
-    if (*p < 32 || *p > 126) return 0;
+    int idx = *p;
+    int byte = idx / 8;
+    int bit = idx % 8;
+    if ((legal_bits[byte] & (1 << bit)) == 0) return 0;
   }
   return 1;
 }
 
+int grpc_mdstr_is_legal_header(grpc_mdstr *s) {
+  static const gpr_uint8 legal_header_bits[256 / 8] = {
+      0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xff, 0x03, 0x00, 0x00, 0x00,
+      0x80, 0xfe, 0xff, 0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+  return conforms_to(s, legal_header_bits);
+}
+
+int grpc_mdstr_is_legal_nonbin_header(grpc_mdstr *s) {
+  static const gpr_uint8 legal_header_bits[256 / 8] = {
+      0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
+      0xff, 0xff, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+      0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
+  return conforms_to(s, legal_header_bits);
+}
+
 int grpc_mdstr_is_bin_suffixed(grpc_mdstr *s) {
   /* TODO(ctiller): consider caching this */
   return grpc_is_binary_header((const char *)GPR_SLICE_START_PTR(s->slice),
diff --git a/src/core/transport/metadata.h b/src/core/transport/metadata.h
index 15ef9bb555ee5aa80d598138a2b62b511519f8c2..eb17747be745b6ffa1845da1af993989de2432ad 100644
--- a/src/core/transport/metadata.h
+++ b/src/core/transport/metadata.h
@@ -95,7 +95,8 @@ size_t grpc_mdctx_get_mdtab_free_test_only(grpc_mdctx *mdctx);
 
 /* Constructors for grpc_mdstr instances; take a variety of data types that
    clients may have handy */
-grpc_mdstr *grpc_mdstr_from_string(grpc_mdctx *ctx, const char *str, int perform_key_canonicalization);
+grpc_mdstr *grpc_mdstr_from_string(grpc_mdctx *ctx, const char *str,
+                                   int perform_key_canonicalization);
 /* Unrefs the slice. */
 grpc_mdstr *grpc_mdstr_from_slice(grpc_mdctx *ctx, gpr_slice slice);
 grpc_mdstr *grpc_mdstr_from_buffer(grpc_mdctx *ctx, const gpr_uint8 *str,
@@ -153,6 +154,7 @@ void grpc_mdelem_unref(grpc_mdelem *md);
 const char *grpc_mdstr_as_c_string(grpc_mdstr *s);
 
 int grpc_mdstr_is_legal_header(grpc_mdstr *s);
+int grpc_mdstr_is_legal_nonbin_header(grpc_mdstr *s);
 int grpc_mdstr_is_bin_suffixed(grpc_mdstr *s);
 
 /* Batch mode metadata functions.
@@ -179,4 +181,4 @@ void grpc_mdctx_unlock(grpc_mdctx *ctx);
 
 #define GRPC_MDSTR_KV_HASH(k_hash, v_hash) (GPR_ROTL((k_hash), 2) ^ (v_hash))
 
-#endif  /* GRPC_INTERNAL_CORE_TRANSPORT_METADATA_H */
+#endif /* GRPC_INTERNAL_CORE_TRANSPORT_METADATA_H */
diff --git a/src/core/transport/stream_op.c b/src/core/transport/stream_op.c
index 0a9669b0ab4d41167580a0e0b9fe5f2f4aa56901..038586d48e220d3f0573699cddb2ec71df0d25dd 100644
--- a/src/core/transport/stream_op.c
+++ b/src/core/transport/stream_op.c
@@ -203,8 +203,8 @@ void grpc_metadata_batch_assert_ok(grpc_metadata_batch *batch) {
 #endif /* NDEBUG */
 
 void grpc_metadata_batch_init(grpc_metadata_batch *batch) {
-  batch->list.head = batch->list.tail = batch->garbage.head = batch->garbage.tail =
-      NULL;
+  batch->list.head = batch->list.tail = batch->garbage.head =
+      batch->garbage.tail = NULL;
   batch->deadline = gpr_inf_future(GPR_CLOCK_REALTIME);
 }
 
@@ -288,7 +288,7 @@ void grpc_metadata_batch_merge(grpc_metadata_batch *target,
 }
 
 void grpc_metadata_batch_move(grpc_metadata_batch *dst,
-                               grpc_metadata_batch *src) {
+                              grpc_metadata_batch *src) {
   *dst = *src;
   memset(src, 0, sizeof(grpc_metadata_batch));
 }
diff --git a/src/core/tsi/fake_transport_security.c b/src/core/tsi/fake_transport_security.c
index 9ce1ddb95e2676353caced21e8eeb6c6dc991228..29127c42690774100dcbcc1b1617fab17b2b0226 100644
--- a/src/core/tsi/fake_transport_security.c
+++ b/src/core/tsi/fake_transport_security.c
@@ -121,7 +121,7 @@ static void store32_little_endian(gpr_uint32 value, unsigned char* buf) {
   buf[3] = (unsigned char)(value >> 24) & 0xFF;
   buf[2] = (unsigned char)(value >> 16) & 0xFF;
   buf[1] = (unsigned char)(value >> 8) & 0xFF;
-  buf[0] = (unsigned char)(value) & 0xFF;
+  buf[0] = (unsigned char)(value)&0xFF;
 }
 
 static void tsi_fake_frame_reset(tsi_fake_frame* frame, int needs_draining) {
@@ -370,7 +370,8 @@ static void fake_protector_destroy(tsi_frame_protector* self) {
 
 static const tsi_frame_protector_vtable frame_protector_vtable = {
     fake_protector_protect, fake_protector_protect_flush,
-    fake_protector_unprotect, fake_protector_destroy, };
+    fake_protector_unprotect, fake_protector_destroy,
+};
 
 /* --- tsi_handshaker methods implementation. ---*/
 
@@ -393,7 +394,8 @@ static tsi_result fake_handshaker_get_bytes_to_send_to_peer(
       next_message_to_send = TSI_FAKE_HANDSHAKE_MESSAGE_MAX;
     }
     if (tsi_tracing_enabled) {
-      gpr_log(GPR_INFO, "%s prepared %s.", impl->is_client ? "Client" : "Server",
+      gpr_log(GPR_INFO, "%s prepared %s.",
+              impl->is_client ? "Client" : "Server",
               tsi_fake_handshake_message_to_string(impl->next_message_to_send));
     }
     impl->next_message_to_send = next_message_to_send;
@@ -493,7 +495,8 @@ static const tsi_handshaker_vtable handshaker_vtable = {
     fake_handshaker_get_result,
     fake_handshaker_extract_peer,
     fake_handshaker_create_frame_protector,
-    fake_handshaker_destroy, };
+    fake_handshaker_destroy,
+};
 
 tsi_handshaker* tsi_create_fake_handshaker(int is_client) {
   tsi_fake_handshaker* impl = calloc(1, sizeof(tsi_fake_handshaker));
diff --git a/src/core/tsi/fake_transport_security.h b/src/core/tsi/fake_transport_security.h
index af9730b90e12b094797ef00e018938f837a58f13..1fa11349fb33c43fd1f62881c99e0c4a478a70df 100644
--- a/src/core/tsi/fake_transport_security.h
+++ b/src/core/tsi/fake_transport_security.h
@@ -58,4 +58,4 @@ tsi_frame_protector* tsi_create_fake_protector(
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_TSI_FAKE_TRANSPORT_SECURITY_H */
+#endif /* GRPC_INTERNAL_CORE_TSI_FAKE_TRANSPORT_SECURITY_H */
diff --git a/src/core/tsi/ssl_transport_security.c b/src/core/tsi/ssl_transport_security.c
index 609fc06ed5d357737204a58dd3cb17f882abe0b0..0b416f6c9ddae2f3377408a300b150c86d2d88fd 100644
--- a/src/core/tsi/ssl_transport_security.c
+++ b/src/core/tsi/ssl_transport_security.c
@@ -43,7 +43,7 @@
 #include "src/core/tsi/transport_security.h"
 
 #include <openssl/bio.h>
-#include <openssl/crypto.h>  /* For OPENSSL_free */
+#include <openssl/crypto.h> /* For OPENSSL_free */
 #include <openssl/err.h>
 #include <openssl/ssl.h>
 #include <openssl/x509.h>
@@ -54,7 +54,6 @@
 #define TSI_SSL_MAX_PROTECTED_FRAME_SIZE_UPPER_BOUND 16384
 #define TSI_SSL_MAX_PROTECTED_FRAME_SIZE_LOWER_BOUND 1024
 
-
 /* Putting a macro like this and littering the source file with #if is really
    bad practice.
    TODO(jboeuf): refactor all the #if / #endif in a separate module. */
@@ -116,7 +115,7 @@ typedef struct {
 /* --- Library Initialization. ---*/
 
 static gpr_once init_openssl_once = GPR_ONCE_INIT;
-static gpr_mu *openssl_mutexes = NULL;
+static gpr_mu* openssl_mutexes = NULL;
 
 static void openssl_locking_cb(int mode, int type, const char* file, int line) {
   if (mode & CRYPTO_LOCK) {
@@ -195,7 +194,7 @@ static void ssl_info_callback(const SSL* ssl, int where, int ret) {
 /* Returns 1 if name looks like an IP address, 0 otherwise.
    This is a very rough heuristic as it does not handle IPV6 or things like:
    0300.0250.00.01, 0xC0.0Xa8.0x0.0x1, 000030052000001, 0xc0.052000001 */
-static int looks_like_ip_address(const char *name) {
+static int looks_like_ip_address(const char* name) {
   size_t i;
   size_t dot_count = 0;
   size_t num_size = 0;
@@ -215,7 +214,6 @@ static int looks_like_ip_address(const char *name) {
   return 1;
 }
 
-
 /* Gets the subject CN from an X509 cert. */
 static tsi_result ssl_get_x509_common_name(X509* cert, unsigned char** utf8,
                                            size_t* utf8_size) {
@@ -630,7 +628,8 @@ static tsi_result build_alpn_protocol_name_list(
   }
   /* Safety check. */
   if ((current < *protocol_name_list) ||
-      ((gpr_uintptr)(current - *protocol_name_list) != *protocol_name_list_length)) {
+      ((gpr_uintptr)(current - *protocol_name_list) !=
+       *protocol_name_list_length)) {
     return TSI_INTERNAL_ERROR;
   }
   return TSI_OK;
@@ -768,7 +767,8 @@ static void ssl_protector_destroy(tsi_frame_protector* self) {
 
 static const tsi_frame_protector_vtable frame_protector_vtable = {
     ssl_protector_protect, ssl_protector_protect_flush, ssl_protector_unprotect,
-    ssl_protector_destroy, };
+    ssl_protector_destroy,
+};
 
 /* --- tsi_handshaker methods implementation. ---*/
 
@@ -948,7 +948,8 @@ static const tsi_handshaker_vtable handshaker_vtable = {
     ssl_handshaker_get_result,
     ssl_handshaker_extract_peer,
     ssl_handshaker_create_frame_protector,
-    ssl_handshaker_destroy, };
+    ssl_handshaker_destroy,
+};
 
 /* --- tsi_ssl_handshaker_factory common methods. --- */
 
@@ -1075,9 +1076,11 @@ static void ssl_client_handshaker_factory_destroy(
   free(impl);
 }
 
-static int client_handshaker_factory_npn_callback(
-    SSL* ssl, unsigned char** out, unsigned char* outlen,
-    const unsigned char* in, unsigned int inlen, void* arg) {
+static int client_handshaker_factory_npn_callback(SSL* ssl, unsigned char** out,
+                                                  unsigned char* outlen,
+                                                  const unsigned char* in,
+                                                  unsigned int inlen,
+                                                  void* arg) {
   tsi_ssl_client_handshaker_factory* factory =
       (tsi_ssl_client_handshaker_factory*)arg;
   return select_protocol_list((const unsigned char**)out, outlen,
@@ -1121,7 +1124,7 @@ static void ssl_server_handshaker_factory_destroy(
 
 static int does_entry_match_name(const char* entry, size_t entry_length,
                                  const char* name) {
-  const char *dot;
+  const char* dot;
   const char* name_subdomain = NULL;
   size_t name_length = strlen(name);
   size_t name_subdomain_length;
@@ -1153,7 +1156,7 @@ static int does_entry_match_name(const char* entry, size_t entry_length,
   if (name_subdomain_length < 2) return 0;
   name_subdomain++; /* Starts after the dot. */
   name_subdomain_length--;
-  entry += 2;       /* Remove *. */
+  entry += 2; /* Remove *. */
   entry_length -= 2;
   dot = strchr(name_subdomain, '.');
   if ((dot == NULL) || (dot == &name_subdomain[name_subdomain_length - 1])) {
@@ -1170,7 +1173,7 @@ static int does_entry_match_name(const char* entry, size_t entry_length,
 static int ssl_server_handshaker_factory_servername_callback(SSL* ssl, int* ap,
                                                              void* arg) {
   tsi_ssl_server_handshaker_factory* impl =
-     (tsi_ssl_server_handshaker_factory*)arg;
+      (tsi_ssl_server_handshaker_factory*)arg;
   size_t i = 0;
   const char* servername = SSL_get_servername(ssl, TLSEXT_NAMETYPE_host_name);
   if (servername == NULL || strlen(servername) == 0) {
diff --git a/src/core/tsi/ssl_transport_security.h b/src/core/tsi/ssl_transport_security.h
index 4bf6c81b75df253978c288169b8caedd2a54d917..cdf4f294be32a7004cf4ae58bce941070dec9129 100644
--- a/src/core/tsi/ssl_transport_security.h
+++ b/src/core/tsi/ssl_transport_security.h
@@ -170,4 +170,4 @@ int tsi_ssl_peer_matches_name(const tsi_peer* peer, const char* name);
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_TSI_SSL_TRANSPORT_SECURITY_H */
+#endif /* GRPC_INTERNAL_CORE_TSI_SSL_TRANSPORT_SECURITY_H */
diff --git a/src/core/tsi/transport_security.h b/src/core/tsi/transport_security.h
index 4cd0ec2cfb152f8654cbc7a423b781e56cdce38c..34283f2f9c7c23345ad5252080e164506e0efbba 100644
--- a/src/core/tsi/transport_security.h
+++ b/src/core/tsi/transport_security.h
@@ -108,4 +108,4 @@ char* tsi_strdup(const char* src); /* Sadly, no strdup in C89. */
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_TSI_TRANSPORT_SECURITY_H */
+#endif /* GRPC_INTERNAL_CORE_TSI_TRANSPORT_SECURITY_H */
diff --git a/src/core/tsi/transport_security_interface.h b/src/core/tsi/transport_security_interface.h
index e27e6b9fc92950aecfe66add7b4aaafe08f20588..03a51683a2820ae27ca9538091e31a16ceeccdb1 100644
--- a/src/core/tsi/transport_security_interface.h
+++ b/src/core/tsi/transport_security_interface.h
@@ -341,4 +341,4 @@ void tsi_handshaker_destroy(tsi_handshaker* self);
 }
 #endif
 
-#endif  /* GRPC_INTERNAL_CORE_TSI_TRANSPORT_SECURITY_INTERFACE_H */
+#endif /* GRPC_INTERNAL_CORE_TSI_TRANSPORT_SECURITY_INTERFACE_H */
diff --git a/src/cpp/client/channel.cc b/src/cpp/client/channel.cc
index 0582b59a6d5ec7faa0921c1c3e6509a2608557f3..8bf2e4687e55b23ef3a5b4cb1ab588f3471bc255 100644
--- a/src/cpp/client/channel.cc
+++ b/src/cpp/client/channel.cc
@@ -31,29 +31,26 @@
  *
  */
 
-#include "src/cpp/client/channel.h"
+#include <grpc++/channel.h>
 
 #include <memory>
 
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/slice.h>
-
-#include "src/core/profiling/timers.h"
-#include <grpc++/channel_arguments.h>
 #include <grpc++/client_context.h>
 #include <grpc++/completion_queue.h>
-#include <grpc++/config.h>
 #include <grpc++/credentials.h>
 #include <grpc++/impl/call.h>
 #include <grpc++/impl/rpc_method.h>
-#include <grpc++/status.h>
-#include <grpc++/time.h>
+#include <grpc++/support/channel_arguments.h>
+#include <grpc++/support/config.h>
+#include <grpc++/support/status.h>
+#include <grpc++/support/time.h>
+#include "src/core/profiling/timers.h"
 
 namespace grpc {
 
-Channel::Channel(grpc_channel* channel) : c_channel_(channel) {}
-
 Channel::Channel(const grpc::string& host, grpc_channel* channel)
     : host_(host), c_channel_(channel) {}
 
@@ -71,7 +68,7 @@ Call Channel::CreateCall(const RpcMethod& method, ClientContext* context,
   } else {
     const char* host_str = NULL;
     if (!context->authority().empty()) {
-      host_str = context->authority().c_str();
+      host_str = context->authority_.c_str();
     } else if (!host_.empty()) {
       host_str = host_.c_str();
     }
@@ -98,9 +95,8 @@ void Channel::PerformOpsOnCall(CallOpSetInterface* ops, Call* call) {
 }
 
 void* Channel::RegisterMethod(const char* method) {
-  return grpc_channel_register_call(c_channel_, method,
-                                    host_.empty() ? NULL : host_.c_str(),
-                                    nullptr);
+  return grpc_channel_register_call(
+      c_channel_, method, host_.empty() ? NULL : host_.c_str(), nullptr);
 }
 
 grpc_connectivity_state Channel::GetState(bool try_to_connect) {
@@ -117,6 +113,7 @@ class TagSaver GRPC_FINAL : public CompletionQueueTag {
     delete this;
     return true;
   }
+
  private:
   void* tag_;
 };
diff --git a/src/cpp/client/channel.h b/src/cpp/client/channel.h
deleted file mode 100644
index cb8e8d98d22549e868f3ce42e1e4a2c008f0ce55..0000000000000000000000000000000000000000
--- a/src/cpp/client/channel.h
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * Copyright 2015, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- *     * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- *     * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef GRPC_INTERNAL_CPP_CLIENT_CHANNEL_H
-#define GRPC_INTERNAL_CPP_CLIENT_CHANNEL_H
-
-#include <memory>
-
-#include <grpc++/channel_interface.h>
-#include <grpc++/config.h>
-#include <grpc++/impl/grpc_library.h>
-
-struct grpc_channel;
-
-namespace grpc {
-class Call;
-class CallOpSetInterface;
-class ChannelArguments;
-class CompletionQueue;
-class Credentials;
-class StreamContextInterface;
-
-class Channel GRPC_FINAL : public GrpcLibrary, public ChannelInterface {
- public:
-  explicit Channel(grpc_channel* c_channel);
-  Channel(const grpc::string& host, grpc_channel* c_channel);
-  ~Channel() GRPC_OVERRIDE;
-
-  void* RegisterMethod(const char* method) GRPC_OVERRIDE;
-  Call CreateCall(const RpcMethod& method, ClientContext* context,
-                          CompletionQueue* cq) GRPC_OVERRIDE;
-  void PerformOpsOnCall(CallOpSetInterface* ops,
-                                Call* call) GRPC_OVERRIDE;
-
-  grpc_connectivity_state GetState(bool try_to_connect) GRPC_OVERRIDE;
-
- private:
-  void NotifyOnStateChangeImpl(grpc_connectivity_state last_observed,
-                               gpr_timespec deadline, CompletionQueue* cq,
-                               void* tag) GRPC_OVERRIDE;
-
-  bool WaitForStateChangeImpl(grpc_connectivity_state last_observed,
-                              gpr_timespec deadline) GRPC_OVERRIDE;
-
-  const grpc::string host_;
-  grpc_channel* const c_channel_;  // owned
-};
-
-}  // namespace grpc
-
-#endif  // GRPC_INTERNAL_CPP_CLIENT_CHANNEL_H
diff --git a/src/cpp/client/channel_arguments.cc b/src/cpp/client/channel_arguments.cc
index da6602e7af379f7ded1c2f2edcea00573bf9f378..50422d06c927d1fe04469c526160e08053966884 100644
--- a/src/cpp/client/channel_arguments.cc
+++ b/src/cpp/client/channel_arguments.cc
@@ -31,10 +31,9 @@
  *
  */
 
-#include <grpc++/channel_arguments.h>
+#include <grpc++/support/channel_arguments.h>
 
 #include <grpc/support/log.h>
-
 #include "src/core/channel/channel_args.h"
 
 namespace grpc {
diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc
index b8caa1eae4d9c98b1055e468678efcf58e475dbf..c4d7cf2e51467d1ccb735cbb9ac566cec7a13df3 100644
--- a/src/cpp/client/client_context.cc
+++ b/src/cpp/client/client_context.cc
@@ -38,7 +38,7 @@
 #include <grpc/support/string_util.h>
 #include <grpc++/credentials.h>
 #include <grpc++/server_context.h>
-#include <grpc++/time.h>
+#include <grpc++/support/time.h>
 
 #include "src/core/channel/compress_filter.h"
 #include "src/cpp/common/create_auth_context.h"
@@ -71,7 +71,7 @@ void ClientContext::AddMetadata(const grpc::string& meta_key,
 }
 
 void ClientContext::set_call(grpc_call* call,
-                             const std::shared_ptr<ChannelInterface>& channel) {
+                             const std::shared_ptr<Channel>& channel) {
   GPR_ASSERT(call_ == nullptr);
   call_ = call;
   channel_ = channel;
diff --git a/src/cpp/client/create_channel.cc b/src/cpp/client/create_channel.cc
index 21d01b739d6c373dbfea7470679f6ee2826c744e..8c571cbbaad24f65591294d9e74ddb704dfd2cf2 100644
--- a/src/cpp/client/create_channel.cc
+++ b/src/cpp/client/create_channel.cc
@@ -34,15 +34,16 @@
 #include <memory>
 #include <sstream>
 
-#include "src/cpp/client/channel.h"
-#include <grpc++/channel_interface.h>
-#include <grpc++/channel_arguments.h>
+#include <grpc++/channel.h>
 #include <grpc++/create_channel.h>
+#include <grpc++/support/channel_arguments.h>
+
+#include "src/cpp/client/create_channel_internal.h"
 
 namespace grpc {
 class ChannelArguments;
 
-std::shared_ptr<ChannelInterface> CreateChannel(
+std::shared_ptr<Channel> CreateChannel(
     const grpc::string& target, const std::shared_ptr<Credentials>& creds,
     const ChannelArguments& args) {
   ChannelArguments cp_args = args;
@@ -50,8 +51,10 @@ std::shared_ptr<ChannelInterface> CreateChannel(
   user_agent_prefix << "grpc-c++/" << grpc_version_string();
   cp_args.SetString(GRPC_ARG_PRIMARY_USER_AGENT_STRING,
                     user_agent_prefix.str());
-  return creds ? creds->CreateChannel(target, cp_args)
-               : std::shared_ptr<ChannelInterface>(
-                     new Channel(grpc_lame_client_channel_create(NULL)));
+  return creds
+             ? creds->CreateChannel(target, cp_args)
+             : CreateChannelInternal("", grpc_lame_client_channel_create(
+                                             NULL, GRPC_STATUS_INVALID_ARGUMENT,
+                                             "Invalid credentials."));
 }
 }  // namespace grpc
diff --git a/src/cpp/client/internal_stub.cc b/src/cpp/client/create_channel_internal.cc
similarity index 82%
rename from src/cpp/client/internal_stub.cc
rename to src/cpp/client/create_channel_internal.cc
index 91724a4837a2a3f9d4471bf5146026a4a5777132..9c5ab038cf1db5a5e09d6e6f1e623f7e83000cdc 100644
--- a/src/cpp/client/internal_stub.cc
+++ b/src/cpp/client/create_channel_internal.cc
@@ -31,6 +31,16 @@
  *
  */
 
-#include <grpc++/impl/internal_stub.h>
+#include <memory>
 
-namespace grpc {}  // namespace grpc
+#include <grpc++/channel.h>
+
+struct grpc_channel;
+
+namespace grpc {
+
+std::shared_ptr<Channel> CreateChannelInternal(const grpc::string& host,
+                                               grpc_channel* c_channel) {
+  return std::shared_ptr<Channel>(new Channel(host, c_channel));
+}
+}  // namespace grpc
diff --git a/include/grpc++/impl/internal_stub.h b/src/cpp/client/create_channel_internal.h
similarity index 79%
rename from include/grpc++/impl/internal_stub.h
rename to src/cpp/client/create_channel_internal.h
index 370a3b8ac5baaf7a2ff452d8dfee960bf8168a18..4385ec701e264083c335d23915bea66e42ca238a 100644
--- a/include/grpc++/impl/internal_stub.h
+++ b/src/cpp/client/create_channel_internal.h
@@ -31,27 +31,21 @@
  *
  */
 
-#ifndef GRPCXX_IMPL_INTERNAL_STUB_H
-#define GRPCXX_IMPL_INTERNAL_STUB_H
+#ifndef GRPC_INTERNAL_CPP_CLIENT_CREATE_CHANNEL_INTERNAL_H
+#define GRPC_INTERNAL_CPP_CLIENT_CREATE_CHANNEL_INTERNAL_H
 
 #include <memory>
 
-#include <grpc++/channel_interface.h>
+#include <grpc++/support/config.h>
 
-namespace grpc {
-
-class InternalStub {
- public:
-  InternalStub(const std::shared_ptr<ChannelInterface>& channel)
-      : channel_(channel) {}
-  virtual ~InternalStub() {}
+struct grpc_channel;
 
-  ChannelInterface* channel() { return channel_.get(); }
+namespace grpc {
+class Channel;
 
- private:
-  const std::shared_ptr<ChannelInterface> channel_;
-};
+std::shared_ptr<Channel> CreateChannelInternal(const grpc::string& host,
+                                               grpc_channel* c_channel);
 
 }  // namespace grpc
 
-#endif  // GRPCXX_IMPL_INTERNAL_STUB_H
+#endif  // GRPC_INTERNAL_CPP_CLIENT_CREATE_CHANNEL_INTERNAL_H
diff --git a/src/cpp/client/generic_stub.cc b/src/cpp/client/generic_stub.cc
index 0c90578ae5252c2a71e2bb18cb02a59a29c13fdb..7a2fdf941cec7ff29271b99bbce48afbcdcc5fd5 100644
--- a/src/cpp/client/generic_stub.cc
+++ b/src/cpp/client/generic_stub.cc
@@ -31,7 +31,7 @@
  *
  */
 
-#include <grpc++/generic_stub.h>
+#include <grpc++/generic/generic_stub.h>
 
 #include <grpc++/impl/rpc_method.h>
 
@@ -44,8 +44,7 @@ std::unique_ptr<GenericClientAsyncReaderWriter> GenericStub::Call(
   return std::unique_ptr<GenericClientAsyncReaderWriter>(
       new GenericClientAsyncReaderWriter(
           channel_.get(), cq,
-          RpcMethod(method.c_str(), RpcMethod::BIDI_STREAMING, nullptr),
-          context, tag));
+          RpcMethod(method.c_str(), RpcMethod::BIDI_STREAMING), context, tag));
 }
 
 }  // namespace grpc
diff --git a/src/cpp/client/insecure_credentials.cc b/src/cpp/client/insecure_credentials.cc
index 2f9357b5686e75da35f74589f2176a63b0a21284..4a4d2cb97d4f831b8fd6289afada159ae9341d7b 100644
--- a/src/cpp/client/insecure_credentials.cc
+++ b/src/cpp/client/insecure_credentials.cc
@@ -31,25 +31,27 @@
  *
  */
 
+#include <grpc++/credentials.h>
+
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
-
-#include <grpc++/channel_arguments.h>
-#include <grpc++/config.h>
-#include <grpc++/credentials.h>
-#include "src/cpp/client/channel.h"
+#include <grpc++/channel.h>
+#include <grpc++/support/channel_arguments.h>
+#include <grpc++/support/config.h>
+#include "src/cpp/client/create_channel_internal.h"
 
 namespace grpc {
 
 namespace {
 class InsecureCredentialsImpl GRPC_FINAL : public Credentials {
  public:
-  std::shared_ptr<grpc::ChannelInterface> CreateChannel(
+  std::shared_ptr<grpc::Channel> CreateChannel(
       const string& target, const grpc::ChannelArguments& args) GRPC_OVERRIDE {
     grpc_channel_args channel_args;
     args.SetChannelArgs(&channel_args);
-    return std::shared_ptr<ChannelInterface>(new Channel(
-        grpc_insecure_channel_create(target.c_str(), &channel_args, nullptr)));
+    return CreateChannelInternal(
+        "",
+        grpc_insecure_channel_create(target.c_str(), &channel_args, nullptr));
   }
 
   // InsecureCredentials should not be applied to a call.
diff --git a/src/cpp/client/secure_channel_arguments.cc b/src/cpp/client/secure_channel_arguments.cc
index d89df999adc7dc8ed1b933e30cfd6111424c2bcf..e17d3b58b06257ee596ecda00cf86257f6d3c0db 100644
--- a/src/cpp/client/secure_channel_arguments.cc
+++ b/src/cpp/client/secure_channel_arguments.cc
@@ -31,9 +31,9 @@
  *
  */
 
-#include <grpc++/channel_arguments.h>
-#include <grpc/grpc_security.h>
+#include <grpc++/support/channel_arguments.h>
 
+#include <grpc/grpc_security.h>
 #include "src/core/channel/channel_args.h"
 
 namespace grpc {
diff --git a/src/cpp/client/secure_credentials.cc b/src/cpp/client/secure_credentials.cc
index 6cd6b77fcf5a49b2c65d3d58e67df1265d2b2e8b..f368f2590a45e85a1155293da83d1817003f3ed2 100644
--- a/src/cpp/client/secure_credentials.cc
+++ b/src/cpp/client/secure_credentials.cc
@@ -32,21 +32,21 @@
  */
 
 #include <grpc/support/log.h>
-
-#include <grpc++/channel_arguments.h>
+#include <grpc++/channel.h>
 #include <grpc++/impl/grpc_library.h>
-#include "src/cpp/client/channel.h"
+#include <grpc++/support/channel_arguments.h>
+#include "src/cpp/client/create_channel_internal.h"
 #include "src/cpp/client/secure_credentials.h"
 
 namespace grpc {
 
-std::shared_ptr<grpc::ChannelInterface> SecureCredentials::CreateChannel(
+std::shared_ptr<grpc::Channel> SecureCredentials::CreateChannel(
     const string& target, const grpc::ChannelArguments& args) {
   grpc_channel_args channel_args;
   args.SetChannelArgs(&channel_args);
-  return std::shared_ptr<ChannelInterface>(new Channel(
+  return CreateChannelInternal(
       args.GetSslTargetNameOverride(),
-      grpc_secure_channel_create(c_creds_, target.c_str(), &channel_args)));
+      grpc_secure_channel_create(c_creds_, target.c_str(), &channel_args));
 }
 
 bool SecureCredentials::ApplyToCall(grpc_call* call) {
diff --git a/src/cpp/client/secure_credentials.h b/src/cpp/client/secure_credentials.h
index ddf69911b5fa39744f63631e33b14fb8ef5e9bd3..62d31854776f425c8c00951656ba27841261cb7a 100644
--- a/src/cpp/client/secure_credentials.h
+++ b/src/cpp/client/secure_credentials.h
@@ -36,7 +36,7 @@
 
 #include <grpc/grpc_security.h>
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 #include <grpc++/credentials.h>
 
 namespace grpc {
@@ -48,7 +48,7 @@ class SecureCredentials GRPC_FINAL : public Credentials {
   grpc_credentials* GetRawCreds() { return c_creds_; }
   bool ApplyToCall(grpc_call* call) GRPC_OVERRIDE;
 
-  std::shared_ptr<grpc::ChannelInterface> CreateChannel(
+  std::shared_ptr<grpc::Channel> CreateChannel(
       const string& target, const grpc::ChannelArguments& args) GRPC_OVERRIDE;
   SecureCredentials* AsSecureCredentials() GRPC_OVERRIDE { return this; }
 
@@ -59,4 +59,3 @@ class SecureCredentials GRPC_FINAL : public Credentials {
 }  // namespace grpc
 
 #endif  // GRPC_INTERNAL_CPP_CLIENT_SECURE_CREDENTIALS_H
-
diff --git a/src/cpp/common/auth_property_iterator.cc b/src/cpp/common/auth_property_iterator.cc
index ba8898351588c4204e65840000b53261641413b7..5ccf8cf72c10901c773972dddd78d0be29f7abb1 100644
--- a/src/cpp/common/auth_property_iterator.cc
+++ b/src/cpp/common/auth_property_iterator.cc
@@ -31,7 +31,7 @@
  *
  */
 
-#include <grpc++/auth_context.h>
+#include <grpc++/support/auth_context.h>
 
 #include <grpc/grpc_security.h>
 
@@ -64,8 +64,7 @@ AuthPropertyIterator AuthPropertyIterator::operator++(int) {
   return tmp;
 }
 
-bool AuthPropertyIterator::operator==(
-    const AuthPropertyIterator& rhs) const {
+bool AuthPropertyIterator::operator==(const AuthPropertyIterator& rhs) const {
   if (property_ == nullptr || rhs.property_ == nullptr) {
     return property_ == rhs.property_;
   } else {
@@ -73,8 +72,7 @@ bool AuthPropertyIterator::operator==(
   }
 }
 
-bool AuthPropertyIterator::operator!=(
-    const AuthPropertyIterator& rhs) const {
+bool AuthPropertyIterator::operator!=(const AuthPropertyIterator& rhs) const {
   return !operator==(rhs);
 }
 
diff --git a/src/cpp/common/call.cc b/src/cpp/common/call.cc
index 0a5c976e0111a47044a2f697ec8e8d078716659b..16aa2c9fb9dbd3c1c079babc7d19cdf57e120df2 100644
--- a/src/cpp/common/call.cc
+++ b/src/cpp/common/call.cc
@@ -34,10 +34,9 @@
 #include <grpc++/impl/call.h>
 
 #include <grpc/support/alloc.h>
-#include <grpc++/byte_buffer.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
-#include <grpc++/channel_interface.h>
-
+#include <grpc++/support/byte_buffer.h>
 #include "src/core/profiling/timers.h"
 
 namespace grpc {
diff --git a/src/cpp/common/completion_queue.cc b/src/cpp/common/completion_queue.cc
index fca33f8f5420ba1f1ca88f58398422fecba13800..a175beb452c97b7f1b1d62fce308bb3ee401b8a6 100644
--- a/src/cpp/common/completion_queue.cc
+++ b/src/cpp/common/completion_queue.cc
@@ -36,7 +36,7 @@
 
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
-#include <grpc++/time.h>
+#include <grpc++/support/time.h>
 
 namespace grpc {
 
diff --git a/src/cpp/common/create_auth_context.h b/src/cpp/common/create_auth_context.h
index 9082a90c6d76807a4629fd690cf0d9946cb18f4f..b4962bae4e3f5fd8200e10d47fcfe9c093541f6e 100644
--- a/src/cpp/common/create_auth_context.h
+++ b/src/cpp/common/create_auth_context.h
@@ -33,7 +33,7 @@
 #include <memory>
 
 #include <grpc/grpc.h>
-#include <grpc++/auth_context.h>
+#include <grpc++/support/auth_context.h>
 
 namespace grpc {
 
diff --git a/src/cpp/common/insecure_create_auth_context.cc b/src/cpp/common/insecure_create_auth_context.cc
index 07fc0bd549ce48f9273b91f132d0bd17a5b7822c..fe80c1a80cde000fea2c5d7047e98ea8beacfeea 100644
--- a/src/cpp/common/insecure_create_auth_context.cc
+++ b/src/cpp/common/insecure_create_auth_context.cc
@@ -33,7 +33,7 @@
 #include <memory>
 
 #include <grpc/grpc.h>
-#include <grpc++/auth_context.h>
+#include <grpc++/support/auth_context.h>
 
 namespace grpc {
 
diff --git a/src/cpp/common/secure_auth_context.h b/src/cpp/common/secure_auth_context.h
index 264ed620a30ef3bffa65e9ed9c0c568db5808e02..01b71261898e547c932e4993835c92342950a797 100644
--- a/src/cpp/common/secure_auth_context.h
+++ b/src/cpp/common/secure_auth_context.h
@@ -34,7 +34,7 @@
 #ifndef GRPC_INTERNAL_CPP_COMMON_SECURE_AUTH_CONTEXT_H
 #define GRPC_INTERNAL_CPP_COMMON_SECURE_AUTH_CONTEXT_H
 
-#include <grpc++/auth_context.h>
+#include <grpc++/support/auth_context.h>
 
 struct grpc_auth_context;
 
diff --git a/src/cpp/common/secure_create_auth_context.cc b/src/cpp/common/secure_create_auth_context.cc
index d81f4bbc4a7835993ca010bc64da6663374a33db..f13d25a1dd6726a7010bdf484424739c6cb401a8 100644
--- a/src/cpp/common/secure_create_auth_context.cc
+++ b/src/cpp/common/secure_create_auth_context.cc
@@ -34,7 +34,7 @@
 
 #include <grpc/grpc.h>
 #include <grpc/grpc_security.h>
-#include <grpc++/auth_context.h>
+#include <grpc++/support/auth_context.h>
 #include "src/cpp/common/secure_auth_context.h"
 
 namespace grpc {
diff --git a/src/cpp/proto/proto_utils.cc b/src/cpp/proto/proto_utils.cc
index 63f4a3a0bcee4a96bcbf7f245e3b591a011cefee..be84c222a0efbfe88b419b07f9bc5aa22c5bbc22 100644
--- a/src/cpp/proto/proto_utils.cc
+++ b/src/cpp/proto/proto_utils.cc
@@ -32,7 +32,6 @@
  */
 
 #include <grpc++/impl/proto_utils.h>
-#include <grpc++/config.h>
 
 #include <grpc/grpc.h>
 #include <grpc/byte_buffer.h>
@@ -40,6 +39,7 @@
 #include <grpc/support/slice.h>
 #include <grpc/support/slice_buffer.h>
 #include <grpc/support/port_platform.h>
+#include <grpc++/support/config.h>
 
 const int kMaxBufferLength = 8192;
 
@@ -154,18 +154,18 @@ class GrpcBufferReader GRPC_FINAL
 
 namespace grpc {
 
-Status SerializeProto(const grpc::protobuf::Message& msg, grpc_byte_buffer** bp) {
+Status SerializeProto(const grpc::protobuf::Message& msg,
+                      grpc_byte_buffer** bp) {
   GrpcBufferWriter writer(bp);
   return msg.SerializeToZeroCopyStream(&writer)
              ? Status::OK
-             : Status(StatusCode::INVALID_ARGUMENT,
-                      "Failed to serialize message");
+             : Status(StatusCode::INTERNAL, "Failed to serialize message");
 }
 
 Status DeserializeProto(grpc_byte_buffer* buffer, grpc::protobuf::Message* msg,
                         int max_message_size) {
   if (!buffer) {
-    return Status(StatusCode::INVALID_ARGUMENT, "No payload");
+    return Status(StatusCode::INTERNAL, "No payload");
   }
   GrpcBufferReader reader(buffer);
   ::grpc::protobuf::io::CodedInputStream decoder(&reader);
@@ -173,11 +173,10 @@ Status DeserializeProto(grpc_byte_buffer* buffer, grpc::protobuf::Message* msg,
     decoder.SetTotalBytesLimit(max_message_size, max_message_size);
   }
   if (!msg->ParseFromCodedStream(&decoder)) {
-    return Status(StatusCode::INVALID_ARGUMENT,
-                  msg->InitializationErrorString());
+    return Status(StatusCode::INTERNAL, msg->InitializationErrorString());
   }
   if (!decoder.ConsumedEntireMessage()) {
-    return Status(StatusCode::INVALID_ARGUMENT, "Did not read entire message");
+    return Status(StatusCode::INTERNAL, "Did not read entire message");
   }
   return Status::OK;
 }
diff --git a/src/cpp/server/async_generic_service.cc b/src/cpp/server/async_generic_service.cc
index 2e99afcb5f136b379a43d2973a6b9eb5e8235389..6b9ea532b6d597c13b4b5a9f663f2df53cd4086f 100644
--- a/src/cpp/server/async_generic_service.cc
+++ b/src/cpp/server/async_generic_service.cc
@@ -31,7 +31,7 @@
  *
  */
 
-#include <grpc++/async_generic_service.h>
+#include <grpc++/generic/async_generic_service.h>
 
 #include <grpc++/server.h>
 
diff --git a/src/cpp/server/create_default_thread_pool.cc b/src/cpp/server/create_default_thread_pool.cc
index 81c84474d838b5fec9863bcfef7344c69472c092..f3b07ec8ce86627f313fb2691ea18a7fbebb48c8 100644
--- a/src/cpp/server/create_default_thread_pool.cc
+++ b/src/cpp/server/create_default_thread_pool.cc
@@ -32,16 +32,17 @@
  */
 
 #include <grpc/support/cpu.h>
-#include <grpc++/dynamic_thread_pool.h>
+
+#include "src/cpp/server/dynamic_thread_pool.h"
 
 #ifndef GRPC_CUSTOM_DEFAULT_THREAD_POOL
 
 namespace grpc {
 
 ThreadPoolInterface* CreateDefaultThreadPool() {
-   int cores = gpr_cpu_num_cores();
-   if (!cores) cores = 4;
-   return new DynamicThreadPool(cores);
+  int cores = gpr_cpu_num_cores();
+  if (!cores) cores = 4;
+  return new DynamicThreadPool(cores);
 }
 
 }  // namespace grpc
diff --git a/src/cpp/server/dynamic_thread_pool.cc b/src/cpp/server/dynamic_thread_pool.cc
index f58d0420dfb026ec641766f59e2dddef621c3876..4b226c2992d4827506b2726439d24151475fc76d 100644
--- a/src/cpp/server/dynamic_thread_pool.cc
+++ b/src/cpp/server/dynamic_thread_pool.cc
@@ -33,13 +33,14 @@
 
 #include <grpc++/impl/sync.h>
 #include <grpc++/impl/thd.h>
-#include <grpc++/dynamic_thread_pool.h>
+
+#include "src/cpp/server/dynamic_thread_pool.h"
 
 namespace grpc {
-DynamicThreadPool::DynamicThread::DynamicThread(DynamicThreadPool *pool):
-  pool_(pool),
-  thd_(new grpc::thread(&DynamicThreadPool::DynamicThread::ThreadFunc, this)) {
-}
+DynamicThreadPool::DynamicThread::DynamicThread(DynamicThreadPool* pool)
+    : pool_(pool),
+      thd_(new grpc::thread(&DynamicThreadPool::DynamicThread::ThreadFunc,
+                            this)) {}
 DynamicThreadPool::DynamicThread::~DynamicThread() {
   thd_->join();
   thd_.reset();
@@ -57,7 +58,7 @@ void DynamicThreadPool::DynamicThread::ThreadFunc() {
     pool_->shutdown_cv_.notify_one();
   }
 }
-  
+
 void DynamicThreadPool::ThreadFunc() {
   for (;;) {
     // Wait until work is available or we are shutting down.
@@ -65,7 +66,7 @@ void DynamicThreadPool::ThreadFunc() {
     if (!shutdown_ && callbacks_.empty()) {
       // If there are too many threads waiting, then quit this thread
       if (threads_waiting_ >= reserve_threads_) {
-	break;
+        break;
       }
       threads_waiting_++;
       cv_.wait(lock);
@@ -84,9 +85,11 @@ void DynamicThreadPool::ThreadFunc() {
   }
 }
 
-DynamicThreadPool::DynamicThreadPool(int reserve_threads) :
-  shutdown_(false), reserve_threads_(reserve_threads), nthreads_(0),
-  threads_waiting_(0) {
+DynamicThreadPool::DynamicThreadPool(int reserve_threads)
+    : shutdown_(false),
+      reserve_threads_(reserve_threads),
+      nthreads_(0),
+      threads_waiting_(0) {
   for (int i = 0; i < reserve_threads_; i++) {
     grpc::lock_guard<grpc::mutex> lock(mu_);
     nthreads_++;
@@ -96,10 +99,10 @@ DynamicThreadPool::DynamicThreadPool(int reserve_threads) :
 
 void DynamicThreadPool::ReapThreads(std::list<DynamicThread*>* tlist) {
   for (auto t = tlist->begin(); t != tlist->end(); t = tlist->erase(t)) {
-    delete *t;    
+    delete *t;
   }
 }
-  
+
 DynamicThreadPool::~DynamicThreadPool() {
   grpc::unique_lock<grpc::mutex> lock(mu_);
   shutdown_ = true;
diff --git a/include/grpc++/dynamic_thread_pool.h b/src/cpp/server/dynamic_thread_pool.h
similarity index 87%
rename from include/grpc++/dynamic_thread_pool.h
rename to src/cpp/server/dynamic_thread_pool.h
index f0cd35940f5dea7b171a0bc651482d746969355e..5ba7533c05f41872cf10edb14609fd47376e2383 100644
--- a/include/grpc++/dynamic_thread_pool.h
+++ b/src/cpp/server/dynamic_thread_pool.h
@@ -31,18 +31,18 @@
  *
  */
 
-#ifndef GRPCXX_DYNAMIC_THREAD_POOL_H
-#define GRPCXX_DYNAMIC_THREAD_POOL_H
+#ifndef GRPC_INTERNAL_CPP_DYNAMIC_THREAD_POOL_H
+#define GRPC_INTERNAL_CPP_DYNAMIC_THREAD_POOL_H
 
-#include <grpc++/config.h>
+#include <list>
+#include <memory>
+#include <queue>
 
 #include <grpc++/impl/sync.h>
 #include <grpc++/impl/thd.h>
-#include <grpc++/thread_pool_interface.h>
+#include <grpc++/support/config.h>
 
-#include <list>
-#include <memory>
-#include <queue>
+#include "src/cpp/server/thread_pool_interface.h"
 
 namespace grpc {
 
@@ -55,11 +55,12 @@ class DynamicThreadPool GRPC_FINAL : public ThreadPoolInterface {
 
  private:
   class DynamicThread {
-  public:
-    DynamicThread(DynamicThreadPool *pool);
+   public:
+    DynamicThread(DynamicThreadPool* pool);
     ~DynamicThread();
-  private:
-    DynamicThreadPool *pool_;
+
+   private:
+    DynamicThreadPool* pool_;
     std::unique_ptr<grpc::thread> thd_;
     void ThreadFunc();
   };
@@ -79,4 +80,4 @@ class DynamicThreadPool GRPC_FINAL : public ThreadPoolInterface {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_DYNAMIC_THREAD_POOL_H
+#endif  // GRPC_INTERNAL_CPP_DYNAMIC_THREAD_POOL_H
diff --git a/src/cpp/server/fixed_size_thread_pool.cc b/src/cpp/server/fixed_size_thread_pool.cc
index bafbc5802a47a9fed72a3e2ccb6a5e3a1d0ed97d..2bdc44be2ea20d967e752139786df2d7248b2bcf 100644
--- a/src/cpp/server/fixed_size_thread_pool.cc
+++ b/src/cpp/server/fixed_size_thread_pool.cc
@@ -33,7 +33,7 @@
 
 #include <grpc++/impl/sync.h>
 #include <grpc++/impl/thd.h>
-#include <grpc++/fixed_size_thread_pool.h>
+#include "src/cpp/server/fixed_size_thread_pool.h"
 
 namespace grpc {
 
diff --git a/include/grpc++/fixed_size_thread_pool.h b/src/cpp/server/fixed_size_thread_pool.h
similarity index 89%
rename from include/grpc++/fixed_size_thread_pool.h
rename to src/cpp/server/fixed_size_thread_pool.h
index 307e1661427bb24e8de8b37b3643766048df2d35..394ae5821ecb3f057215ddb1ac02dddb97259ba1 100644
--- a/include/grpc++/fixed_size_thread_pool.h
+++ b/src/cpp/server/fixed_size_thread_pool.h
@@ -31,17 +31,17 @@
  *
  */
 
-#ifndef GRPCXX_FIXED_SIZE_THREAD_POOL_H
-#define GRPCXX_FIXED_SIZE_THREAD_POOL_H
+#ifndef GRPC_INTERNAL_CPP_FIXED_SIZE_THREAD_POOL_H
+#define GRPC_INTERNAL_CPP_FIXED_SIZE_THREAD_POOL_H
 
-#include <grpc++/config.h>
+#include <queue>
+#include <vector>
 
 #include <grpc++/impl/sync.h>
 #include <grpc++/impl/thd.h>
-#include <grpc++/thread_pool_interface.h>
+#include <grpc++/support/config.h>
 
-#include <queue>
-#include <vector>
+#include "src/cpp/server/thread_pool_interface.h"
 
 namespace grpc {
 
@@ -64,4 +64,4 @@ class FixedSizeThreadPool GRPC_FINAL : public ThreadPoolInterface {
 
 }  // namespace grpc
 
-#endif  // GRPCXX_FIXED_SIZE_THREAD_POOL_H
+#endif  // GRPC_INTERNAL_CPP_FIXED_SIZE_THREAD_POOL_H
diff --git a/src/cpp/server/secure_server_credentials.cc b/src/cpp/server/secure_server_credentials.cc
index 32c45e228067b0f21d5724da2c4d3a804bf7123e..f203cf7f495a4be303671dc2cec6adf8975793bc 100644
--- a/src/cpp/server/secure_server_credentials.cc
+++ b/src/cpp/server/secure_server_credentials.cc
@@ -35,8 +35,8 @@
 
 namespace grpc {
 
-int SecureServerCredentials::AddPortToServer(
-    const grpc::string& addr, grpc_server* server) {
+int SecureServerCredentials::AddPortToServer(const grpc::string& addr,
+                                             grpc_server* server) {
   return grpc_server_add_secure_http2_port(server, addr.c_str(), creds_);
 }
 
diff --git a/src/cpp/server/secure_server_credentials.h b/src/cpp/server/secure_server_credentials.h
index b9803f107e5d587774809d2b694ca5ed4f5b4402..d3d37b188df52d111e11254524f57ca53a1209d6 100644
--- a/src/cpp/server/secure_server_credentials.h
+++ b/src/cpp/server/secure_server_credentials.h
@@ -34,10 +34,10 @@
 #ifndef GRPC_INTERNAL_CPP_SERVER_SECURE_SERVER_CREDENTIALS_H
 #define GRPC_INTERNAL_CPP_SERVER_SECURE_SERVER_CREDENTIALS_H
 
-#include <grpc/grpc_security.h>
-
 #include <grpc++/server_credentials.h>
 
+#include <grpc/grpc_security.h>
+
 namespace grpc {
 
 class SecureServerCredentials GRPC_FINAL : public ServerCredentials {
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index 90f3854a72c746e26742218ac603b93f6d38798c..66cd27cc3398284865035950fa484e38448406b1 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -32,24 +32,71 @@
  */
 
 #include <grpc++/server.h>
+
 #include <utility>
 
 #include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <grpc++/completion_queue.h>
-#include <grpc++/async_generic_service.h>
+#include <grpc++/generic/async_generic_service.h>
 #include <grpc++/impl/rpc_service_method.h>
 #include <grpc++/impl/service_type.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/thread_pool_interface.h>
-#include <grpc++/time.h>
+#include <grpc++/support/time.h>
 
 #include "src/core/profiling/timers.h"
+#include "src/cpp/server/thread_pool_interface.h"
 
 namespace grpc {
 
+class Server::UnimplementedAsyncRequestContext {
+ protected:
+  UnimplementedAsyncRequestContext() : generic_stream_(&server_context_) {}
+
+  GenericServerContext server_context_;
+  GenericServerAsyncReaderWriter generic_stream_;
+};
+
+class Server::UnimplementedAsyncRequest GRPC_FINAL
+    : public UnimplementedAsyncRequestContext,
+      public GenericAsyncRequest {
+ public:
+  UnimplementedAsyncRequest(Server* server, ServerCompletionQueue* cq)
+      : GenericAsyncRequest(server, &server_context_, &generic_stream_, cq, cq,
+                            NULL, false),
+        server_(server),
+        cq_(cq) {}
+
+  bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE;
+
+  ServerContext* context() { return &server_context_; }
+  GenericServerAsyncReaderWriter* stream() { return &generic_stream_; }
+
+ private:
+  Server* const server_;
+  ServerCompletionQueue* const cq_;
+};
+
+typedef SneakyCallOpSet<CallOpSendInitialMetadata, CallOpServerSendStatus>
+    UnimplementedAsyncResponseOp;
+class Server::UnimplementedAsyncResponse GRPC_FINAL
+    : public UnimplementedAsyncResponseOp {
+ public:
+  UnimplementedAsyncResponse(UnimplementedAsyncRequest* request);
+  ~UnimplementedAsyncResponse() { delete request_; }
+
+  bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE {
+    bool r = UnimplementedAsyncResponseOp::FinalizeResult(tag, status);
+    delete this;
+    return r;
+  }
+
+ private:
+  UnimplementedAsyncRequest* const request_;
+};
+
 class Server::ShutdownRequest GRPC_FINAL : public CompletionQueueTag {
  public:
   bool FinalizeResult(void** tag, bool* status) {
@@ -90,6 +137,26 @@ class Server::SyncRequest GRPC_FINAL : public CompletionQueueTag {
     return mrd;
   }
 
+  static bool AsyncWait(CompletionQueue* cq, SyncRequest** req, bool* ok,
+                        gpr_timespec deadline) {
+    void* tag = nullptr;
+    *ok = false;
+    switch (cq->AsyncNext(&tag, ok, deadline)) {
+      case CompletionQueue::TIMEOUT:
+        *req = nullptr;
+        return true;
+      case CompletionQueue::SHUTDOWN:
+        *req = nullptr;
+        return false;
+      case CompletionQueue::GOT_EVENT:
+        *req = static_cast<SyncRequest*>(tag);
+        GPR_ASSERT((*req)->in_flight_);
+        return true;
+    }
+    gpr_log(GPR_ERROR, "Should never reach here");
+    abort();
+  }
+
   void SetupRequest() { cq_ = grpc_completion_queue_create(nullptr); }
 
   void TeardownRequest() {
@@ -230,18 +297,17 @@ Server::~Server() {
   delete sync_methods_;
 }
 
-bool Server::RegisterService(const grpc::string *host, RpcService* service) {
+bool Server::RegisterService(const grpc::string* host, RpcService* service) {
   for (int i = 0; i < service->GetMethodCount(); ++i) {
     RpcServiceMethod* method = service->GetMethod(i);
-    void* tag = grpc_server_register_method(
-        server_, method->name(), host ? host->c_str() : nullptr);
+    void* tag = grpc_server_register_method(server_, method->name(),
+                                            host ? host->c_str() : nullptr);
     if (!tag) {
       gpr_log(GPR_DEBUG, "Attempt to register %s multiple times",
               method->name());
       return false;
     }
-    SyncRequest request(method, tag);
-    sync_methods_->emplace_back(request);
+    sync_methods_->emplace_back(method, tag);
   }
   return true;
 }
@@ -278,15 +344,23 @@ int Server::AddListeningPort(const grpc::string& addr,
   return creds->AddPortToServer(addr, server_);
 }
 
-bool Server::Start() {
+bool Server::Start(ServerCompletionQueue** cqs, size_t num_cqs) {
   GPR_ASSERT(!started_);
   started_ = true;
   grpc_server_start(server_);
 
   if (!has_generic_service_) {
-    unknown_method_.reset(new RpcServiceMethod(
-        "unknown", RpcMethod::BIDI_STREAMING, new UnknownMethodHandler));
-    sync_methods_->emplace_back(unknown_method_.get(), nullptr);
+    if (!sync_methods_->empty()) {
+      unknown_method_.reset(new RpcServiceMethod(
+          "unknown", RpcMethod::BIDI_STREAMING, new UnknownMethodHandler));
+      // Use of emplace_back with just constructor arguments is not accepted
+      // here by gcc-4.4 because it can't match the anonymous nullptr with a 
+      // proper constructor implicitly. Construct the object and use push_back.
+      sync_methods_->push_back(SyncRequest(unknown_method_.get(), nullptr));
+    }
+    for (size_t i = 0; i < num_cqs; i++) {
+      new UnimplementedAsyncRequest(this, cqs[i]);
+    }
   }
   // Start processing rpcs.
   if (!sync_methods_->empty()) {
@@ -301,12 +375,27 @@ bool Server::Start() {
   return true;
 }
 
-void Server::Shutdown() {
+void Server::ShutdownInternal(gpr_timespec deadline) {
   grpc::unique_lock<grpc::mutex> lock(mu_);
   if (started_ && !shutdown_) {
     shutdown_ = true;
     grpc_server_shutdown_and_notify(server_, cq_.cq(), new ShutdownRequest());
     cq_.Shutdown();
+    // Spin, eating requests until the completion queue is completely shutdown.
+    // If the deadline expires then cancel anything that's pending and keep
+    // spinning forever until the work is actually drained.
+    // Since nothing else needs to touch state guarded by mu_, holding it 
+    // through this loop is fine.
+    SyncRequest* request;
+    bool ok;
+    while (SyncRequest::AsyncWait(&cq_, &request, &ok, deadline)) {
+      if (request == NULL) {  // deadline expired
+        grpc_server_cancel_all_calls(server_);
+        deadline = gpr_inf_future(GPR_CLOCK_MONOTONIC);
+      } else if (ok) {
+        SyncRequest::CallData call_data(this, request);
+      }
+    }
 
     // Wait for running callbacks to finish.
     while (num_running_cb_ != 0) {
@@ -333,12 +422,14 @@ void Server::PerformOpsOnCall(CallOpSetInterface* ops, Call* call) {
 
 Server::BaseAsyncRequest::BaseAsyncRequest(
     Server* server, ServerContext* context,
-    ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, void* tag)
+    ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, void* tag,
+    bool delete_on_finalize)
     : server_(server),
       context_(context),
       stream_(stream),
       call_cq_(call_cq),
       tag_(tag),
+      delete_on_finalize_(delete_on_finalize),
       call_(nullptr) {
   memset(&initial_metadata_array_, 0, sizeof(initial_metadata_array_));
 }
@@ -365,14 +456,16 @@ bool Server::BaseAsyncRequest::FinalizeResult(void** tag, bool* status) {
   // just the pointers inside call are copied here
   stream_->BindCall(&call);
   *tag = tag_;
-  delete this;
+  if (delete_on_finalize_) {
+    delete this;
+  }
   return true;
 }
 
 Server::RegisteredAsyncRequest::RegisteredAsyncRequest(
     Server* server, ServerContext* context,
     ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq, void* tag)
-    : BaseAsyncRequest(server, context, stream, call_cq, tag) {}
+    : BaseAsyncRequest(server, context, stream, call_cq, tag, true) {}
 
 void Server::RegisteredAsyncRequest::IssueRequest(
     void* registered_method, grpc_byte_buffer** payload,
@@ -386,8 +479,9 @@ void Server::RegisteredAsyncRequest::IssueRequest(
 Server::GenericAsyncRequest::GenericAsyncRequest(
     Server* server, GenericServerContext* context,
     ServerAsyncStreamingInterface* stream, CompletionQueue* call_cq,
-    ServerCompletionQueue* notification_cq, void* tag)
-    : BaseAsyncRequest(server, context, stream, call_cq, tag) {
+    ServerCompletionQueue* notification_cq, void* tag, bool delete_on_finalize)
+    : BaseAsyncRequest(server, context, stream, call_cq, tag,
+                       delete_on_finalize) {
   grpc_call_details_init(&call_details_);
   GPR_ASSERT(notification_cq);
   GPR_ASSERT(call_cq);
@@ -408,6 +502,25 @@ bool Server::GenericAsyncRequest::FinalizeResult(void** tag, bool* status) {
   return BaseAsyncRequest::FinalizeResult(tag, status);
 }
 
+bool Server::UnimplementedAsyncRequest::FinalizeResult(void** tag,
+                                                       bool* status) {
+  if (GenericAsyncRequest::FinalizeResult(tag, status) && *status) {
+    new UnimplementedAsyncRequest(server_, cq_);
+    new UnimplementedAsyncResponse(this);
+  } else {
+    delete this;
+  }
+  return false;
+}
+
+Server::UnimplementedAsyncResponse::UnimplementedAsyncResponse(
+    UnimplementedAsyncRequest* request)
+    : request_(request) {
+  Status status(StatusCode::UNIMPLEMENTED, "");
+  UnknownMethodHandler::FillOps(request_->context(), this);
+  request_->stream()->call_.PerformOps(this);
+}
+
 void Server::ScheduleCallback() {
   {
     grpc::unique_lock<grpc::mutex> lock(mu_);
diff --git a/src/cpp/server/server_builder.cc b/src/cpp/server/server_builder.cc
index 09118879f4f2d97ebb5199888c08b28fcb13cdf9..b739cbfe62b1a2cfcd44d677479ce407389d1e95 100644
--- a/src/cpp/server/server_builder.cc
+++ b/src/cpp/server/server_builder.cc
@@ -37,8 +37,8 @@
 #include <grpc/support/log.h>
 #include <grpc++/impl/service_type.h>
 #include <grpc++/server.h>
-#include <grpc++/thread_pool_interface.h>
-#include <grpc++/fixed_size_thread_pool.h>
+#include "src/cpp/server/thread_pool_interface.h"
+#include "src/cpp/server/fixed_size_thread_pool.h"
 
 namespace grpc {
 
@@ -59,14 +59,16 @@ void ServerBuilder::RegisterAsyncService(AsynchronousService* service) {
   async_services_.emplace_back(new NamedService<AsynchronousService>(service));
 }
 
-void ServerBuilder::RegisterService(
-    const grpc::string& addr, SynchronousService* service) {
-  services_.emplace_back(new NamedService<RpcService>(addr, service->service()));
+void ServerBuilder::RegisterService(const grpc::string& addr,
+                                    SynchronousService* service) {
+  services_.emplace_back(
+      new NamedService<RpcService>(addr, service->service()));
 }
 
-void ServerBuilder::RegisterAsyncService(
-    const grpc::string& addr, AsynchronousService* service) {
-  async_services_.emplace_back(new NamedService<AsynchronousService>(addr, service));
+void ServerBuilder::RegisterAsyncService(const grpc::string& addr,
+                                         AsynchronousService* service) {
+  async_services_.emplace_back(
+      new NamedService<AsynchronousService>(addr, service));
 }
 
 void ServerBuilder::RegisterAsyncGenericService(AsyncGenericService* service) {
@@ -87,10 +89,6 @@ void ServerBuilder::AddListeningPort(const grpc::string& addr,
   ports_.push_back(port);
 }
 
-void ServerBuilder::SetThreadPool(ThreadPoolInterface* thread_pool) {
-  thread_pool_ = thread_pool;
-}
-
 std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
   bool thread_pool_owned = false;
   if (!async_services_.empty() && !services_.empty()) {
@@ -101,12 +99,6 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
     thread_pool_ = CreateDefaultThreadPool();
     thread_pool_owned = true;
   }
-  // Async services only, create a thread pool to handle requests to unknown
-  // services.
-  if (!thread_pool_ && !generic_service_ && !async_services_.empty()) {
-    thread_pool_ = new FixedSizeThreadPool(1);
-    thread_pool_owned = true;
-  }
   std::unique_ptr<Server> server(
       new Server(thread_pool_, thread_pool_owned, max_message_size_));
   for (auto cq = cqs_.begin(); cq != cqs_.end(); ++cq) {
@@ -119,9 +111,10 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
       return nullptr;
     }
   }
-  for (auto service = async_services_.begin();
-       service != async_services_.end(); service++) {
-    if (!server->RegisterAsyncService((*service)->host.get(), (*service)->service)) {
+  for (auto service = async_services_.begin(); service != async_services_.end();
+       service++) {
+    if (!server->RegisterAsyncService((*service)->host.get(),
+                                      (*service)->service)) {
       return nullptr;
     }
   }
@@ -135,7 +128,7 @@ std::unique_ptr<Server> ServerBuilder::BuildAndStart() {
       *port->selected_port = r;
     }
   }
-  if (!server->Start()) {
+  if (!server->Start(&cqs_[0], cqs_.size())) {
     return nullptr;
   }
   return server;
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc
index bb34040a2ff12eb33e541dfc4bad4c7736473896..acc163d6b5d2ad5d18fa2830d900cc84058f9829 100644
--- a/src/cpp/server/server_context.cc
+++ b/src/cpp/server/server_context.cc
@@ -38,7 +38,7 @@
 #include <grpc/support/log.h>
 #include <grpc++/impl/call.h>
 #include <grpc++/impl/sync.h>
-#include <grpc++/time.h>
+#include <grpc++/support/time.h>
 
 #include "src/core/channel/compress_filter.h"
 #include "src/cpp/common/create_auth_context.h"
@@ -50,7 +50,12 @@ namespace grpc {
 class ServerContext::CompletionOp GRPC_FINAL : public CallOpSetInterface {
  public:
   // initial refs: one in the server context, one in the cq
-  CompletionOp() : has_tag_(false), tag_(nullptr), refs_(2), finalized_(false), cancelled_(0) {}
+  CompletionOp()
+      : has_tag_(false),
+        tag_(nullptr),
+        refs_(2),
+        finalized_(false),
+        cancelled_(0) {}
 
   void FillOps(grpc_op* ops, size_t* nops) GRPC_OVERRIDE;
   bool FinalizeResult(void** tag, bool* status) GRPC_OVERRIDE;
diff --git a/include/grpc++/thread_pool_interface.h b/src/cpp/server/thread_pool_interface.h
similarity index 92%
rename from include/grpc++/thread_pool_interface.h
rename to src/cpp/server/thread_pool_interface.h
index d080b31dcc550ccc30b00e20b73bee2d9bcedd7c..1ebe30fe2a5c744199b929aa5264dd23bd1c3ee9 100644
--- a/include/grpc++/thread_pool_interface.h
+++ b/src/cpp/server/thread_pool_interface.h
@@ -31,8 +31,8 @@
  *
  */
 
-#ifndef GRPCXX_THREAD_POOL_INTERFACE_H
-#define GRPCXX_THREAD_POOL_INTERFACE_H
+#ifndef GRPC_INTERNAL_CPP_THREAD_POOL_INTERFACE_H
+#define GRPC_INTERNAL_CPP_THREAD_POOL_INTERFACE_H
 
 #include <functional>
 
@@ -51,4 +51,4 @@ ThreadPoolInterface* CreateDefaultThreadPool();
 
 }  // namespace grpc
 
-#endif  // GRPCXX_THREAD_POOL_INTERFACE_H
+#endif  // GRPC_INTERNAL_CPP_THREAD_POOL_INTERFACE_H
diff --git a/src/cpp/util/byte_buffer.cc b/src/cpp/util/byte_buffer.cc
index a66c92c3e156560e0170ac48aad127fb479e1350..e46e656beb097e932dcf2c568735ced9bcb331e9 100644
--- a/src/cpp/util/byte_buffer.cc
+++ b/src/cpp/util/byte_buffer.cc
@@ -32,7 +32,7 @@
  */
 
 #include <grpc/byte_buffer_reader.h>
-#include <grpc++/byte_buffer.h>
+#include <grpc++/support/byte_buffer.h>
 
 namespace grpc {
 
diff --git a/src/cpp/util/slice.cc b/src/cpp/util/slice.cc
index 57370dabc68fd170f6e8a5534cf55241a3280603..7e88423b6c5304052d76b0ccf9236d57ee2ba70a 100644
--- a/src/cpp/util/slice.cc
+++ b/src/cpp/util/slice.cc
@@ -31,7 +31,7 @@
  *
  */
 
-#include <grpc++/slice.h>
+#include <grpc++/support/slice.h>
 
 namespace grpc {
 
diff --git a/src/cpp/util/status.cc b/src/cpp/util/status.cc
index 5bb9eda3d9c898fe2d755165d0053048fc9fdd34..ad9850cf074ec32ea9df9c5bda78a2d518af1d94 100644
--- a/src/cpp/util/status.cc
+++ b/src/cpp/util/status.cc
@@ -31,7 +31,7 @@
  *
  */
 
-#include <grpc++/status.h>
+#include <grpc++/support/status.h>
 
 namespace grpc {
 
diff --git a/src/cpp/util/string_ref.cc b/src/cpp/util/string_ref.cc
new file mode 100644
index 0000000000000000000000000000000000000000..8483e8c2eeadcec27f889a8f64cfc6210e5839d7
--- /dev/null
+++ b/src/cpp/util/string_ref.cc
@@ -0,0 +1,111 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc++/support/string_ref.h>
+
+#include <string.h>
+
+#include <algorithm>
+
+namespace grpc {
+
+constexpr size_t string_ref::npos;
+
+string_ref& string_ref::operator=(const string_ref& rhs) {
+  data_ = rhs.data_;
+  length_ = rhs.length_;
+  return *this;
+}
+
+string_ref::string_ref(const char* s) : data_(s), length_(strlen(s)) {}
+
+string_ref string_ref::substr(size_t pos, size_t n) const {
+  if (pos > length_) pos = length_;
+  if (n > (length_ - pos)) n = length_ - pos;
+  return string_ref(data_ + pos, n);
+}
+
+int string_ref::compare(string_ref x) const {
+  size_t min_size = length_ < x.length_ ? length_ : x.length_;
+  int r = memcmp(data_, x.data_, min_size);
+  if (r < 0) return -1;
+  if (r > 0) return 1;
+  if (length_ < x.length_) return -1;
+  if (length_ > x.length_) return 1;
+  return 0;
+}
+
+bool string_ref::starts_with(string_ref x) const {
+  return length_ >= x.length_ && (memcmp(data_, x.data_, x.length_) == 0);
+}
+
+bool string_ref::ends_with(string_ref x) const {
+  return length_ >= x.length_ &&
+         (memcmp(data_ + (length_ - x.length_), x.data_, x.length_) == 0);
+}
+
+size_t string_ref::find(string_ref s) const {
+  auto it = std::search(cbegin(), cend(), s.cbegin(), s.cend());
+  return it == cend() ? npos : std::distance(cbegin(), it);
+}
+
+size_t string_ref::find(char c) const {
+  auto it = std::find_if(cbegin(), cend(), [c](char cc) { return cc == c; });
+  return it == cend() ? npos : std::distance(cbegin(), it);
+}
+
+bool operator==(string_ref x, string_ref y) {
+  return x.compare(y) == 0;
+}
+
+bool operator!=(string_ref x, string_ref y) {
+  return x.compare(y) != 0;
+}
+
+bool operator<(string_ref x, string_ref y) {
+  return x.compare(y) < 0;
+}
+
+bool operator<=(string_ref x, string_ref y) {
+  return x.compare(y) <= 0;
+}
+
+bool operator>(string_ref x, string_ref y) {
+  return x.compare(y) > 0;
+}
+
+bool operator>=(string_ref x, string_ref y) {
+  return x.compare(y) >= 0;
+}
+
+}  // namespace grpc
diff --git a/src/cpp/util/time.cc b/src/cpp/util/time.cc
index 799c597e0b9207487952262d78423bf5115fecf4..b3401eb26b7a25e1efc4ed40b6406aedd8571084 100644
--- a/src/cpp/util/time.cc
+++ b/src/cpp/util/time.cc
@@ -31,12 +31,12 @@
  *
  */
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 #ifndef GRPC_CXX0X_NO_CHRONO
 
 #include <grpc/support/time.h>
-#include <grpc++/time.h>
+#include <grpc++/support/time.h>
 
 using std::chrono::duration_cast;
 using std::chrono::nanoseconds;
diff --git a/src/csharp/.gitignore b/src/csharp/.gitignore
index ae4895656704778ce1da08fb53969bd227566adb..48365e32a599f8f3a18c16c0bd947f2bb42b462a 100644
--- a/src/csharp/.gitignore
+++ b/src/csharp/.gitignore
@@ -5,4 +5,5 @@ test-results
 packages
 Grpc.v12.suo
 TestResult.xml
+/TestResults
 *.nupkg
diff --git a/src/csharp/Grpc.Auth/AuthInterceptors.cs b/src/csharp/Grpc.Auth/AuthInterceptors.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c8ab4d9af6f8966b6dcc1354ee1da6c02954adfc
--- /dev/null
+++ b/src/csharp/Grpc.Auth/AuthInterceptors.cs
@@ -0,0 +1,88 @@
+#region Copyright notice and license
+
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Threading;
+
+using Google.Apis.Auth.OAuth2;
+using Grpc.Core;
+using Grpc.Core.Utils;
+
+namespace Grpc.Auth
+{
+    /// <summary>
+    /// Factory methods to create authorization interceptors. Interceptors created can be registered with gRPC client classes (autogenerated client stubs that
+    /// inherit from <see cref="Grpc.Core.ClientBase"/>).
+    /// </summary>
+    public static class AuthInterceptors
+    {
+        private const string AuthorizationHeader = "Authorization";
+        private const string Schema = "Bearer";
+
+        /// <summary>
+        /// Creates interceptor that will obtain access token from any credential type that implements
+        /// <c>ITokenAccess</c>. (e.g. <c>GoogleCredential</c>).
+        /// </summary>
+        /// <param name="credential">The credential to use to obtain access tokens.</param>
+        /// <returns>The header interceptor.</returns>
+        public static HeaderInterceptor FromCredential(ITokenAccess credential)
+        {
+            return new HeaderInterceptor((method, authUri, metadata) =>
+            {
+                // TODO(jtattermusch): Rethink synchronous wait to obtain the result.
+                var accessToken = credential.GetAccessTokenForRequestAsync(authUri, CancellationToken.None)
+                        .ConfigureAwait(false).GetAwaiter().GetResult();
+                metadata.Add(CreateBearerTokenHeader(accessToken));
+            });
+        }
+
+        /// <summary>
+        /// Creates OAuth2 interceptor that will use given access token as authorization.
+        /// </summary>
+        /// <param name="accessToken">OAuth2 access token.</param>
+        /// <returns>The header interceptor.</returns>
+        public static HeaderInterceptor FromAccessToken(string accessToken)
+        {
+            Preconditions.CheckNotNull(accessToken);
+            return new HeaderInterceptor((method, authUri, metadata) =>
+            {
+                metadata.Add(CreateBearerTokenHeader(accessToken));
+            });
+        }
+
+        private static Metadata.Entry CreateBearerTokenHeader(string accessToken)
+        {
+            return new Metadata.Entry(AuthorizationHeader, Schema + " " + accessToken);
+        }
+    }
+}
diff --git a/src/csharp/Grpc.Auth/Grpc.Auth.csproj b/src/csharp/Grpc.Auth/Grpc.Auth.csproj
index 930a34b0c3327a76dbefb49652f6f97a579138f9..4fb087d4a342686c0acc4d75da04ea22240e851a 100644
--- a/src/csharp/Grpc.Auth/Grpc.Auth.csproj
+++ b/src/csharp/Grpc.Auth/Grpc.Auth.csproj
@@ -3,8 +3,6 @@
   <PropertyGroup>
     <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
     <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
-    <ProductVersion>10.0.0</ProductVersion>
-    <SchemaVersion>2.0</SchemaVersion>
     <ProjectGuid>{AE21D0EE-9A2C-4C15-AB7F-5224EED5B0EA}</ProjectGuid>
     <OutputType>Library</OutputType>
     <RootNamespace>Grpc.Auth</RootNamespace>
@@ -41,57 +39,47 @@
     <AssemblyOriginatorKeyFile>C:\keys\Grpc.snk</AssemblyOriginatorKeyFile>
   </PropertyGroup>
   <ItemGroup>
-    <Reference Include="BouncyCastle.Crypto, Version=1.7.4137.9688, Culture=neutral, PublicKeyToken=a4292a325f69b123, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="System" />
+    <Reference Include="System.Net" />
+    <Reference Include="System.Net.Http" />
+    <Reference Include="System.Net.Http.WebRequest" />
+    <Reference Include="BouncyCastle.Crypto">
       <HintPath>..\packages\BouncyCastle.1.7.0\lib\Net40-Client\BouncyCastle.Crypto.dll</HintPath>
     </Reference>
-    <Reference Include="Google.Apis.Auth, Version=1.9.3.19379, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Google.Apis.Auth">
       <HintPath>..\packages\Google.Apis.Auth.1.9.3\lib\net40\Google.Apis.Auth.dll</HintPath>
     </Reference>
-    <Reference Include="Google.Apis.Auth.PlatformServices, Version=1.9.3.19383, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Google.Apis.Auth.PlatformServices">
       <HintPath>..\packages\Google.Apis.Auth.1.9.3\lib\net40\Google.Apis.Auth.PlatformServices.dll</HintPath>
     </Reference>
-    <Reference Include="Google.Apis.Core, Version=1.9.3.19379, Culture=neutral, PublicKeyToken=4b01fa6e34db77ab, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Google.Apis.Core">
       <HintPath>..\packages\Google.Apis.Core.1.9.3\lib\portable-net40+sl50+win+wpa81+wp80\Google.Apis.Core.dll</HintPath>
     </Reference>
-    <Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Microsoft.Threading.Tasks">
       <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
     </Reference>
-    <Reference Include="Microsoft.Threading.Tasks.Extensions, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Microsoft.Threading.Tasks.Extensions">
       <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
     </Reference>
-    <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop">
       <HintPath>..\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
     </Reference>
-    <Reference Include="Newtonsoft.Json, Version=7.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="Newtonsoft.Json">
       <HintPath>..\packages\Newtonsoft.Json.7.0.1\lib\net45\Newtonsoft.Json.dll</HintPath>
     </Reference>
-    <Reference Include="System" />
-    <Reference Include="System.Net" />
-    <Reference Include="System.Net.Http" />
-    <Reference Include="System.Net.Http.Extensions, Version=2.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="System.Net.Http.Extensions">
       <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Extensions.dll</HintPath>
     </Reference>
-    <Reference Include="System.Net.Http.Primitives, Version=4.2.29.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
-      <SpecificVersion>False</SpecificVersion>
+    <Reference Include="System.Net.Http.Primitives">
       <HintPath>..\packages\Microsoft.Net.Http.2.2.29\lib\net45\System.Net.Http.Primitives.dll</HintPath>
     </Reference>
-    <Reference Include="System.Net.Http.WebRequest" />
   </ItemGroup>
   <ItemGroup>
     <Compile Include="..\Grpc.Core\Version.cs">
       <Link>Version.cs</Link>
     </Compile>
     <Compile Include="Properties\AssemblyInfo.cs" />
-    <Compile Include="OAuth2Interceptors.cs" />
+    <Compile Include="AuthInterceptors.cs" />
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <ItemGroup>
diff --git a/src/csharp/Grpc.Auth/Grpc.Auth.nuspec b/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
index 2dc10d24c27460e5f81f2861b9c45f802c8aa06d..f1f8f7c709c232ca24bcb55590a11457c9d129fd 100644
--- a/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
+++ b/src/csharp/Grpc.Auth/Grpc.Auth.nuspec
@@ -15,7 +15,7 @@
     <copyright>Copyright 2015, Google Inc.</copyright>
     <tags>gRPC RPC Protocol HTTP/2 Auth OAuth2</tags>
 	<dependencies>
-	  <dependency id="Google.Apis.Auth" version="1.9.2" />
+	  <dependency id="Google.Apis.Auth" version="1.9.3" />
 	  <dependency id="Grpc.Core" version="$version$" />
     </dependencies>
   </metadata>
diff --git a/src/csharp/Grpc.Auth/OAuth2Interceptors.cs b/src/csharp/Grpc.Auth/OAuth2Interceptors.cs
deleted file mode 100644
index d628a83246d13e85da23d33077433da378cbaf7d..0000000000000000000000000000000000000000
--- a/src/csharp/Grpc.Auth/OAuth2Interceptors.cs
+++ /dev/null
@@ -1,115 +0,0 @@
-#region Copyright notice and license
-
-// Copyright 2015, Google Inc.
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are
-// met:
-//
-//     * Redistributions of source code must retain the above copyright
-// notice, this list of conditions and the following disclaimer.
-//     * Redistributions in binary form must reproduce the above
-// copyright notice, this list of conditions and the following disclaimer
-// in the documentation and/or other materials provided with the
-// distribution.
-//     * Neither the name of Google Inc. nor the names of its
-// contributors may be used to endorse or promote products derived from
-// this software without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-#endregion
-
-using System;
-using System.Collections.Generic;
-using System.Diagnostics;
-using System.IO;
-using System.Security.Cryptography.X509Certificates;
-using System.Text.RegularExpressions;
-using System.Threading;
-using System.Threading.Tasks;
-
-using Google.Apis.Auth.OAuth2;
-using Google.Apis.Util;
-using Grpc.Core;
-using Grpc.Core.Utils;
-
-namespace Grpc.Auth
-{
-    public static class OAuth2Interceptors
-    {
-        /// <summary>
-        /// Creates OAuth2 interceptor that will obtain access token from GoogleCredentials.
-        /// </summary>
-        public static MetadataInterceptorDelegate FromCredential(GoogleCredential googleCredential)
-        {
-            var interceptor = new OAuth2Interceptor(googleCredential, SystemClock.Default);
-            return new MetadataInterceptorDelegate(interceptor.InterceptHeaders);
-        }
-
-        /// <summary>
-        /// Creates OAuth2 interceptor that will use given OAuth2 token.
-        /// </summary>
-        /// <param name="oauth2Token"></param>
-        /// <returns></returns>
-        public static MetadataInterceptorDelegate FromAccessToken(string oauth2Token)
-        {
-            Preconditions.CheckNotNull(oauth2Token);
-            return new MetadataInterceptorDelegate((authUri, metadata) =>
-            {
-                metadata.Add(OAuth2Interceptor.CreateBearerTokenHeader(oauth2Token));
-            });
-        }
-
-        /// <summary>
-        /// Injects OAuth2 authorization header into initial metadata (= request headers).
-        /// </summary>
-        private class OAuth2Interceptor
-        {
-            private const string AuthorizationHeader = "Authorization";
-            private const string Schema = "Bearer";
-
-            private ITokenAccess credential;
-            private IClock clock;
-
-            public OAuth2Interceptor(ITokenAccess credential, IClock clock)
-            {
-                this.credential = credential;
-                this.clock = clock;
-            }
-
-            /// <summary>
-            /// Gets access token and requests refreshing it if is going to expire soon.
-            /// </summary>
-            /// <param name="cancellationToken"></param>
-            /// <returns></returns>
-            public string GetAccessToken(string authUri, CancellationToken cancellationToken)
-            {
-                // TODO(jtattermusch): Rethink synchronous wait to obtain the result.
-                return credential.GetAccessTokenForRequestAsync(authUri, cancellationToken: cancellationToken).GetAwaiter().GetResult();
-            }
-
-            public void InterceptHeaders(string authUri, Metadata metadata)
-            {
-                var accessToken = GetAccessToken(authUri, CancellationToken.None);
-                metadata.Add(CreateBearerTokenHeader(accessToken));
-            }
-
-            public static Metadata.Entry CreateBearerTokenHeader(string accessToken)
-            {
-                return new Metadata.Entry(AuthorizationHeader, Schema + " " + accessToken);
-            }
-        }
-    }
-}
diff --git a/src/csharp/Grpc.Core.Tests/ChannelTest.cs b/src/csharp/Grpc.Core.Tests/ChannelTest.cs
index 2787572924078f22af307660f9ec62d545cd3842..dfbd92879e7cb969b7f7f9225b5de3bc34d1a8cf 100644
--- a/src/csharp/Grpc.Core.Tests/ChannelTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ChannelTest.cs
@@ -41,12 +41,6 @@ namespace Grpc.Core.Tests
 {
     public class ChannelTest
     {
-        [TestFixtureTearDown]
-        public void CleanupClass()
-        {
-            GrpcEnvironment.Shutdown();
-        }
-
         [Test]
         public void Constructor_RejectsInvalidParams()
         {
@@ -56,36 +50,33 @@ namespace Grpc.Core.Tests
         [Test]
         public void State_IdleAfterCreation()
         {
-            using (var channel = new Channel("localhost", Credentials.Insecure))
-            {
-                Assert.AreEqual(ChannelState.Idle, channel.State);
-            }
+            var channel = new Channel("localhost", Credentials.Insecure);
+            Assert.AreEqual(ChannelState.Idle, channel.State);
+            channel.ShutdownAsync().Wait();
         }
 
         [Test]
         public void WaitForStateChangedAsync_InvalidArgument()
         {
-            using (var channel = new Channel("localhost", Credentials.Insecure))
-            {
-                Assert.Throws(typeof(ArgumentException), () => channel.WaitForStateChangedAsync(ChannelState.FatalFailure));
-            }
+            var channel = new Channel("localhost", Credentials.Insecure);
+            Assert.Throws(typeof(ArgumentException), () => channel.WaitForStateChangedAsync(ChannelState.FatalFailure));
+            channel.ShutdownAsync().Wait();
         }
 
         [Test]
         public void ResolvedTarget()
         {
-            using (var channel = new Channel("127.0.0.1", Credentials.Insecure))
-            {
-                Assert.IsTrue(channel.ResolvedTarget.Contains("127.0.0.1"));
-            }
+            var channel = new Channel("127.0.0.1", Credentials.Insecure);
+            Assert.IsTrue(channel.ResolvedTarget.Contains("127.0.0.1"));
+            channel.ShutdownAsync().Wait();
         }
 
         [Test]
-        public void Dispose_IsIdempotent()
+        public void Shutdown_AllowedOnlyOnce()
         {
             var channel = new Channel("localhost", Credentials.Insecure);
-            channel.Dispose();
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
+            Assert.Throws(typeof(InvalidOperationException), () => channel.ShutdownAsync().GetAwaiter().GetResult());
         }
     }
 }
diff --git a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
index e49fdb5268c6cfa65a33e27e1baac4a5d110caa5..68279a2007658e17ccc843c7a61af82910cd90e8 100644
--- a/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ClientServerTest.cs
@@ -63,16 +63,10 @@ namespace Grpc.Core.Tests
         [TearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
         }
 
-        [TestFixtureTearDown]
-        public void CleanupClass()
-        {
-            GrpcEnvironment.Shutdown();
-        }
-
         [Test]
         public async Task UnaryCall()
         {
@@ -207,13 +201,6 @@ namespace Grpc.Core.Tests
             CollectionAssert.AreEqual(headers[1].ValueBytes, trailers[1].ValueBytes);
         }
 
-        [Test]
-        public void UnaryCall_DisposedChannel()
-        {
-            channel.Dispose();
-            Assert.Throws(typeof(ObjectDisposedException), () => Calls.BlockingUnaryCall(helper.CreateUnaryCall(), "ABC"));
-        }
-
         [Test]
         public void UnaryCallPerformance()
         {
diff --git a/src/csharp/Grpc.Core.Tests/CompressionTest.cs b/src/csharp/Grpc.Core.Tests/CompressionTest.cs
index 9547683f60fb5f3d5b55018bea53d6f997e42ad2..378c81851c0b561bf6d441d92790e3b1bec997a1 100644
--- a/src/csharp/Grpc.Core.Tests/CompressionTest.cs
+++ b/src/csharp/Grpc.Core.Tests/CompressionTest.cs
@@ -62,16 +62,10 @@ namespace Grpc.Core.Tests
         [TearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
         }
 
-        [TestFixtureTearDown]
-        public void CleanupClass()
-        {
-            GrpcEnvironment.Shutdown();
-        }
-
         [Test]
         public void WriteOptions_Unary()
         {
diff --git a/src/csharp/Grpc.Core.Tests/ContextPropagationTest.cs b/src/csharp/Grpc.Core.Tests/ContextPropagationTest.cs
index db5f953b0e1371b50e502711b27b5f6384f24241..2db3f286f7af0e77be8623f12803ea5a1537f6d1 100644
--- a/src/csharp/Grpc.Core.Tests/ContextPropagationTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ContextPropagationTest.cs
@@ -62,16 +62,10 @@ namespace Grpc.Core.Tests
         [TearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
         }
 
-        [TestFixtureTearDown]
-        public void CleanupClass()
-        {
-            GrpcEnvironment.Shutdown();
-        }
-
         [Test]
         public async Task PropagateCancellation()
         {
diff --git a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
index d6a8f52570b1d3ee2103f4842d0cd7c797bdc98b..b571fe90259d580a86fc63364ec166a13bc48120 100644
--- a/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
+++ b/src/csharp/Grpc.Core.Tests/Grpc.Core.Tests.csproj
@@ -64,6 +64,8 @@
       <Link>Version.cs</Link>
     </Compile>
     <Compile Include="ClientBaseTest.cs" />
+    <Compile Include="ShutdownTest.cs" />
+    <Compile Include="Internal\AsyncCallTest.cs" />
     <Compile Include="Properties\AssemblyInfo.cs" />
     <Compile Include="ClientServerTest.cs" />
     <Compile Include="ServerTest.cs" />
@@ -82,6 +84,7 @@
     <Compile Include="ResponseHeadersTest.cs" />
     <Compile Include="CompressionTest.cs" />
     <Compile Include="ContextPropagationTest.cs" />
+    <Compile Include="MetadataTest.cs" />
   </ItemGroup>
   <Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
   <ItemGroup>
diff --git a/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs b/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
index 4ed93c7eca24a3372c56ede53bb6e926f60c8d62..78295cf6d4103f6fa25437e6e5195f4a53a5ee49 100644
--- a/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
+++ b/src/csharp/Grpc.Core.Tests/GrpcEnvironmentTest.cs
@@ -43,31 +43,40 @@ namespace Grpc.Core.Tests
         [Test]
         public void InitializeAndShutdownGrpcEnvironment()
         {
-            var env = GrpcEnvironment.GetInstance();
+            var env = GrpcEnvironment.AddRef();
             Assert.IsNotNull(env.CompletionQueue);
-            GrpcEnvironment.Shutdown();
+            GrpcEnvironment.Release();
         }
 
         [Test]
         public void SubsequentInvocations()
         {
-            var env1 = GrpcEnvironment.GetInstance();
-            var env2 = GrpcEnvironment.GetInstance();
-            Assert.IsTrue(object.ReferenceEquals(env1, env2));
-            GrpcEnvironment.Shutdown();
-            GrpcEnvironment.Shutdown();
+            var env1 = GrpcEnvironment.AddRef();
+            var env2 = GrpcEnvironment.AddRef();
+            Assert.AreSame(env1, env2);
+            GrpcEnvironment.Release();
+            GrpcEnvironment.Release();
         }
 
         [Test]
         public void InitializeAfterShutdown()
         {
-            var env1 = GrpcEnvironment.GetInstance();
-            GrpcEnvironment.Shutdown();
+            Assert.AreEqual(0, GrpcEnvironment.GetRefCount());
 
-            var env2 = GrpcEnvironment.GetInstance();
-            GrpcEnvironment.Shutdown();
+            var env1 = GrpcEnvironment.AddRef();
+            GrpcEnvironment.Release();
 
-            Assert.IsFalse(object.ReferenceEquals(env1, env2));
+            var env2 = GrpcEnvironment.AddRef();
+            GrpcEnvironment.Release();
+
+            Assert.AreNotSame(env1, env2);
+        }
+
+        [Test]
+        public void ReleaseWithoutAddRef()
+        {
+            Assert.AreEqual(0, GrpcEnvironment.GetRefCount());
+            Assert.Throws(typeof(InvalidOperationException), () => GrpcEnvironment.Release());
         }
 
         [Test]
diff --git a/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..685c5f7d6cb7a314cbfdee015e07ed79cd1a5efd
--- /dev/null
+++ b/src/csharp/Grpc.Core.Tests/Internal/AsyncCallTest.cs
@@ -0,0 +1,222 @@
+#region Copyright notice and license
+
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Runtime.InteropServices;
+using System.Threading.Tasks;
+
+using Grpc.Core.Internal;
+using NUnit.Framework;
+
+namespace Grpc.Core.Internal.Tests
+{
+    public class AsyncCallTest
+    {
+        Channel channel;
+        FakeNativeCall fakeCall;
+        AsyncCall<string, string> asyncCall;
+
+        [SetUp]
+        public void Init()
+        {
+            channel = new Channel("localhost", Credentials.Insecure);
+
+            fakeCall = new FakeNativeCall();
+
+            var callDetails = new CallInvocationDetails<string, string>(channel, "someMethod", null, Marshallers.StringMarshaller, Marshallers.StringMarshaller, new CallOptions());
+            asyncCall = new AsyncCall<string, string>(callDetails, fakeCall);
+        }
+
+        [TearDown]
+        public void Cleanup()
+        {
+            channel.ShutdownAsync().Wait();
+        }
+
+        [Test]
+        public void AsyncUnary_CompletionSuccess()
+        {
+            var resultTask = asyncCall.UnaryCallAsync("abc");
+            fakeCall.UnaryResponseClientHandler(true, new ClientSideStatus(Status.DefaultSuccess, new Metadata()), new byte[] { 1, 2, 3 }, new Metadata());
+            Assert.IsTrue(resultTask.IsCompleted);
+            Assert.IsTrue(fakeCall.IsDisposed);
+            Assert.AreEqual(Status.DefaultSuccess, asyncCall.GetStatus());
+        }
+
+        [Test]
+        public void AsyncUnary_CompletionFailure()
+        {
+            var resultTask = asyncCall.UnaryCallAsync("abc");
+            fakeCall.UnaryResponseClientHandler(false, new ClientSideStatus(new Status(StatusCode.Internal, ""), null), new byte[] { 1, 2, 3 }, new Metadata());
+
+            Assert.IsTrue(resultTask.IsCompleted);
+            Assert.IsTrue(fakeCall.IsDisposed);
+
+            Assert.AreEqual(StatusCode.Internal, asyncCall.GetStatus().StatusCode);
+            Assert.IsNull(asyncCall.GetTrailers());
+            var ex = Assert.Throws<RpcException>(() => resultTask.GetAwaiter().GetResult());
+            Assert.AreEqual(StatusCode.Internal, ex.Status.StatusCode);
+        }
+
+        internal class FakeNativeCall : INativeCall
+        {
+            public UnaryResponseClientHandler UnaryResponseClientHandler
+            {
+                get;
+                set;
+            }
+
+            public ReceivedStatusOnClientHandler ReceivedStatusOnClientHandler
+            {
+                get;
+                set;
+            }
+
+            public ReceivedMessageHandler ReceivedMessageHandler
+            {
+                get;
+                set;
+            }
+
+            public ReceivedResponseHeadersHandler ReceivedResponseHeadersHandler
+            {
+                get;
+                set;
+            }
+
+            public SendCompletionHandler SendCompletionHandler
+            {
+                get;
+                set;
+            }
+
+            public ReceivedCloseOnServerHandler ReceivedCloseOnServerHandler
+            {
+                get;
+                set;
+            }
+
+            public bool IsCancelled
+            {
+                get;
+                set;
+            }
+
+            public bool IsDisposed
+            {
+                get;
+                set;
+            }
+
+            public void Cancel()
+            {
+                IsCancelled = true;
+            }
+
+            public void CancelWithStatus(Status status)
+            {
+                IsCancelled = true;
+            }
+
+            public string GetPeer()
+            {
+                return "PEER";
+            }
+
+            public void StartUnary(UnaryResponseClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+            {
+                UnaryResponseClientHandler = callback;
+            }
+
+            public void StartUnary(BatchContextSafeHandle ctx, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+            {
+                throw new NotImplementedException();
+            }
+
+            public void StartClientStreaming(UnaryResponseClientHandler callback, MetadataArraySafeHandle metadataArray)
+            {
+                UnaryResponseClientHandler = callback;
+            }
+
+            public void StartServerStreaming(ReceivedStatusOnClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+            {
+                ReceivedStatusOnClientHandler = callback;
+            }
+
+            public void StartDuplexStreaming(ReceivedStatusOnClientHandler callback, MetadataArraySafeHandle metadataArray)
+            {
+                ReceivedStatusOnClientHandler = callback;
+            }
+
+            public void StartReceiveMessage(ReceivedMessageHandler callback)
+            {
+                ReceivedMessageHandler = callback;
+            }
+
+            public void StartReceiveInitialMetadata(ReceivedResponseHeadersHandler callback)
+            {
+                ReceivedResponseHeadersHandler = callback;
+            }
+
+            public void StartSendInitialMetadata(SendCompletionHandler callback, MetadataArraySafeHandle metadataArray)
+            {
+                SendCompletionHandler = callback;
+            }
+
+            public void StartSendMessage(SendCompletionHandler callback, byte[] payload, WriteFlags writeFlags, bool sendEmptyInitialMetadata)
+            {
+                SendCompletionHandler = callback;
+            }
+
+            public void StartSendCloseFromClient(SendCompletionHandler callback)
+            {
+                SendCompletionHandler = callback;
+            }
+
+            public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata)
+            {
+                SendCompletionHandler = callback;
+            }
+
+            public void StartServerSide(ReceivedCloseOnServerHandler callback)
+            {
+                ReceivedCloseOnServerHandler = callback;
+            }
+
+            public void Dispose()
+            {
+                IsDisposed = true;
+            }
+        }
+    }
+}
\ No newline at end of file
diff --git a/src/csharp/Grpc.Core.Tests/MetadataTest.cs b/src/csharp/Grpc.Core.Tests/MetadataTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..c00f945d6a76be8d7cf11f7650410ef86eb538e7
--- /dev/null
+++ b/src/csharp/Grpc.Core.Tests/MetadataTest.cs
@@ -0,0 +1,120 @@
+#region Copyright notice and license
+
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Diagnostics;
+using System.Runtime.InteropServices;
+using System.Threading;
+using System.Threading.Tasks;
+using Grpc.Core;
+using Grpc.Core.Internal;
+using Grpc.Core.Utils;
+using NUnit.Framework;
+
+namespace Grpc.Core.Tests
+{
+    public class MetadataTest
+    {
+        [Test]
+        public void AsciiEntry()
+        {
+            var entry = new Metadata.Entry("ABC", "XYZ");
+            Assert.IsFalse(entry.IsBinary);
+            Assert.AreEqual("abc", entry.Key);  // key is in lowercase.
+            Assert.AreEqual("XYZ", entry.Value);
+            CollectionAssert.AreEqual(new[] { (byte)'X', (byte)'Y', (byte)'Z' }, entry.ValueBytes);
+
+            Assert.Throws(typeof(ArgumentException), () => new Metadata.Entry("abc-bin", "xyz"));
+
+            Assert.AreEqual("[Entry: key=abc, value=XYZ]", entry.ToString());
+        }
+
+        [Test]
+        public void BinaryEntry()
+        {
+            var bytes = new byte[] { 1, 2, 3 };
+            var entry = new Metadata.Entry("ABC-BIN", bytes);
+            Assert.IsTrue(entry.IsBinary);
+            Assert.AreEqual("abc-bin", entry.Key);  // key is in lowercase.
+            Assert.Throws(typeof(InvalidOperationException), () => { var v = entry.Value; });
+            CollectionAssert.AreEqual(bytes, entry.ValueBytes);
+
+            Assert.Throws(typeof(ArgumentException), () => new Metadata.Entry("abc", bytes));
+
+            Assert.AreEqual("[Entry: key=abc-bin, valueBytes=System.Byte[]]", entry.ToString());
+        }
+
+        [Test]
+        public void Entry_ConstructionPreconditions()
+        {
+            Assert.Throws(typeof(ArgumentNullException), () => new Metadata.Entry(null, "xyz"));
+            Assert.Throws(typeof(ArgumentNullException), () => new Metadata.Entry("abc", (string)null));
+            Assert.Throws(typeof(ArgumentNullException), () => new Metadata.Entry("abc-bin", (byte[])null));
+        }
+
+        [Test]
+        public void Entry_Immutable()
+        {
+            var origBytes = new byte[] { 1, 2, 3 };
+            var bytes = new byte[] { 1, 2, 3 };
+            var entry = new Metadata.Entry("ABC-BIN", bytes);
+            bytes[0] = 255;  // changing the array passed to constructor should have any effect.
+            CollectionAssert.AreEqual(origBytes, entry.ValueBytes);
+
+            entry.ValueBytes[0] = 255;
+            CollectionAssert.AreEqual(origBytes, entry.ValueBytes);
+        }
+
+        [Test]
+        public void Entry_CreateUnsafe_Ascii()
+        {
+            var bytes = new byte[] { (byte)'X', (byte)'y' };
+            var entry = Metadata.Entry.CreateUnsafe("abc", bytes);
+            Assert.IsFalse(entry.IsBinary);
+            Assert.AreEqual("abc", entry.Key);
+            Assert.AreEqual("Xy", entry.Value);
+            CollectionAssert.AreEqual(bytes, entry.ValueBytes);
+        }
+
+        [Test]
+        public void Entry_CreateUnsafe_Binary()
+        {
+            var bytes = new byte[] { 1, 2, 3 };
+            var entry = Metadata.Entry.CreateUnsafe("abc-bin", bytes);
+            Assert.IsTrue(entry.IsBinary);
+            Assert.AreEqual("abc-bin", entry.Key);
+            Assert.Throws(typeof(InvalidOperationException), () => { var v = entry.Value; });
+            CollectionAssert.AreEqual(bytes, entry.ValueBytes);
+        }
+    }
+}
diff --git a/src/csharp/Grpc.Core.Tests/ResponseHeadersTest.cs b/src/csharp/Grpc.Core.Tests/ResponseHeadersTest.cs
index 981b8ea3c8ea397727653a898ad57ab892e41b87..a1648f367122900f36b4f7e54919d72cbff103db 100644
--- a/src/csharp/Grpc.Core.Tests/ResponseHeadersTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ResponseHeadersTest.cs
@@ -32,13 +32,16 @@
 #endregion
 
 using System;
+using System.Collections.Generic;
 using System.Diagnostics;
 using System.Linq;
 using System.Threading;
 using System.Threading.Tasks;
+
 using Grpc.Core;
 using Grpc.Core.Internal;
 using Grpc.Core.Utils;
+
 using NUnit.Framework;
 
 namespace Grpc.Core.Tests
@@ -69,14 +72,82 @@ namespace Grpc.Core.Tests
         [TearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
         }
 
-        [TestFixtureTearDown]
-        public void CleanupClass()
+        [Test]
+        public async Task ResponseHeadersAsync_UnaryCall()
+        {
+            helper.UnaryHandler = new UnaryServerMethod<string, string>(async (request, context) =>
+            {
+                await context.WriteResponseHeadersAsync(headers);
+                return "PASS";
+            });
+
+            var call = Calls.AsyncUnaryCall(helper.CreateUnaryCall(), "");
+            var responseHeaders = await call.ResponseHeadersAsync;
+
+            Assert.AreEqual(headers.Count, responseHeaders.Count);
+            Assert.AreEqual("ascii-header", responseHeaders[0].Key);
+            Assert.AreEqual("abcdefg", responseHeaders[0].Value);
+
+            Assert.AreEqual("PASS", await call.ResponseAsync);
+        }
+
+        [Test]
+        public async Task ResponseHeadersAsync_ClientStreamingCall()
+        {
+            helper.ClientStreamingHandler = new ClientStreamingServerMethod<string, string>(async (requestStream, context) =>
+            {
+                await context.WriteResponseHeadersAsync(headers);
+                return "PASS";
+            });
+
+            var call = Calls.AsyncClientStreamingCall(helper.CreateClientStreamingCall());
+            await call.RequestStream.CompleteAsync();
+            var responseHeaders = await call.ResponseHeadersAsync;
+
+            Assert.AreEqual("ascii-header", responseHeaders[0].Key);
+            Assert.AreEqual("PASS", await call.ResponseAsync);
+        }
+
+        [Test]
+        public async Task ResponseHeadersAsync_ServerStreamingCall()
+        {
+            helper.ServerStreamingHandler = new ServerStreamingServerMethod<string, string>(async (request, responseStream, context) =>
+            {
+                await context.WriteResponseHeadersAsync(headers);
+                await responseStream.WriteAsync("PASS");
+            });
+
+            var call = Calls.AsyncServerStreamingCall(helper.CreateServerStreamingCall(), "");
+            var responseHeaders = await call.ResponseHeadersAsync;
+
+            Assert.AreEqual("ascii-header", responseHeaders[0].Key);
+            CollectionAssert.AreEqual(new[] { "PASS" }, await call.ResponseStream.ToListAsync());
+        }
+
+        [Test]
+        public async Task ResponseHeadersAsync_DuplexStreamingCall()
         {
-            GrpcEnvironment.Shutdown();
+            helper.DuplexStreamingHandler = new DuplexStreamingServerMethod<string, string>(async (requestStream, responseStream, context) =>
+            {
+                await context.WriteResponseHeadersAsync(headers);
+                while (await requestStream.MoveNext())
+                {
+                    await responseStream.WriteAsync(requestStream.Current);
+                }
+            });
+
+            var call = Calls.AsyncDuplexStreamingCall(helper.CreateDuplexStreamingCall());
+            var responseHeaders = await call.ResponseHeadersAsync;
+
+            var messages = new[] { "PASS" };
+            await call.RequestStream.WriteAllAsync(messages);
+
+            Assert.AreEqual("ascii-header", responseHeaders[0].Key);
+            CollectionAssert.AreEqual(messages, await call.ResponseStream.ToListAsync());
         }
 
         [Test]
diff --git a/src/csharp/Grpc.Core.Tests/ServerTest.cs b/src/csharp/Grpc.Core.Tests/ServerTest.cs
index 485006ebac7a1d40059b254c5e41a0fdd97910ef..e7193c843b9e16e0b01346d15032ce04406a3b7b 100644
--- a/src/csharp/Grpc.Core.Tests/ServerTest.cs
+++ b/src/csharp/Grpc.Core.Tests/ServerTest.cs
@@ -51,7 +51,6 @@ namespace Grpc.Core.Tests
             };
             server.Start();
             server.ShutdownAsync().Wait();
-            GrpcEnvironment.Shutdown();
         }
 
         [Test]
@@ -67,8 +66,7 @@ namespace Grpc.Core.Tests
             Assert.Greater(boundPort.BoundPort, 0);
 
             server.Start();
-            server.ShutdownAsync();
-            GrpcEnvironment.Shutdown();
+            server.ShutdownAsync().Wait();
         }
 
         [Test]
@@ -83,7 +81,6 @@ namespace Grpc.Core.Tests
             Assert.Throws(typeof(InvalidOperationException), () => server.Services.Add(ServerServiceDefinition.CreateBuilder("serviceName").Build()));
 
             server.ShutdownAsync().Wait();
-            GrpcEnvironment.Shutdown();
         }
     }
 }
diff --git a/src/csharp/Grpc.Core.Tests/ShutdownTest.cs b/src/csharp/Grpc.Core.Tests/ShutdownTest.cs
new file mode 100644
index 0000000000000000000000000000000000000000..a2be7ddd5e0d2feb776878f7869f747e544fe2d6
--- /dev/null
+++ b/src/csharp/Grpc.Core.Tests/ShutdownTest.cs
@@ -0,0 +1,77 @@
+#region Copyright notice and license
+
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+using System.Diagnostics;
+using System.Linq;
+using System.Threading;
+using System.Threading.Tasks;
+using Grpc.Core;
+using Grpc.Core.Internal;
+using Grpc.Core.Utils;
+using NUnit.Framework;
+
+namespace Grpc.Core.Tests
+{
+    public class ShutdownTest
+    {
+        const string Host = "127.0.0.1";
+
+        MockServiceHelper helper;
+        Server server;
+        Channel channel;
+
+        [SetUp]
+        public void Init()
+        {
+            helper = new MockServiceHelper(Host);
+            server = helper.GetServer();
+            server.Start();
+            channel = helper.GetChannel();
+        }
+
+        [Test]
+        public async Task AbandonedCall()
+        {
+            helper.DuplexStreamingHandler = new DuplexStreamingServerMethod<string, string>(async (requestStream, responseStream, context) =>
+            {
+                await requestStream.ToListAsync();
+            });
+
+            var call = Calls.AsyncDuplexStreamingCall(helper.CreateDuplexStreamingCall(new CallOptions(deadline: DateTime.UtcNow.AddMilliseconds(1))));
+
+            channel.ShutdownAsync().Wait();
+            server.ShutdownAsync().Wait();
+        }
+    }
+}
diff --git a/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs b/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs
index d875d601b94cc18fd39ac935805ec11a51171b97..41f661f62db438d31c76b78bdf300b9d34e26f6e 100644
--- a/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs
+++ b/src/csharp/Grpc.Core.Tests/TimeoutsTest.cs
@@ -65,16 +65,10 @@ namespace Grpc.Core.Tests
         [TearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
         }
 
-        [TestFixtureTearDown]
-        public void CleanupClass()
-        {
-            GrpcEnvironment.Shutdown();
-        }
-
         [Test]
         public void InfiniteDeadline()
         {
diff --git a/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs b/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs
index bf020cd627454035db3a2f71e57dc8756b4a03ee..5646fed3d960bf998bb99058f5f35e54d5bff459 100644
--- a/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs
+++ b/src/csharp/Grpc.Core/AsyncClientStreamingCall.cs
@@ -40,18 +40,22 @@ namespace Grpc.Core
     /// <summary>
     /// Return type for client streaming calls.
     /// </summary>
+    /// <typeparam name="TRequest">Request message type for this call.</typeparam>
+    /// <typeparam name="TResponse">Response message type for this call.</typeparam>
     public sealed class AsyncClientStreamingCall<TRequest, TResponse> : IDisposable
     {
         readonly IClientStreamWriter<TRequest> requestStream;
         readonly Task<TResponse> responseAsync;
+        readonly Task<Metadata> responseHeadersAsync;
         readonly Func<Status> getStatusFunc;
         readonly Func<Metadata> getTrailersFunc;
         readonly Action disposeAction;
 
-        public AsyncClientStreamingCall(IClientStreamWriter<TRequest> requestStream, Task<TResponse> responseAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
+        internal AsyncClientStreamingCall(IClientStreamWriter<TRequest> requestStream, Task<TResponse> responseAsync, Task<Metadata> responseHeadersAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
         {
             this.requestStream = requestStream;
             this.responseAsync = responseAsync;
+            this.responseHeadersAsync = responseHeadersAsync;
             this.getStatusFunc = getStatusFunc;
             this.getTrailersFunc = getTrailersFunc;
             this.disposeAction = disposeAction;
@@ -68,6 +72,17 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// Asynchronous access to response headers.
+        /// </summary>
+        public Task<Metadata> ResponseHeadersAsync
+        {
+            get
+            {
+                return this.responseHeadersAsync;
+            }
+        }
+
         /// <summary>
         /// Async stream to send streaming requests.
         /// </summary>
@@ -88,6 +103,24 @@ namespace Grpc.Core
             return responseAsync.GetAwaiter();
         }
 
+        /// <summary>
+        /// Gets the call status if the call has already finished.
+        /// Throws InvalidOperationException otherwise.
+        /// </summary>
+        public Status GetStatus()
+        {
+            return getStatusFunc();
+        }
+
+        /// <summary>
+        /// Gets the call trailing metadata if the call has already finished.
+        /// Throws InvalidOperationException otherwise.
+        /// </summary>
+        public Metadata GetTrailers()
+        {
+            return getTrailersFunc();
+        }
+
         /// <summary>
         /// Provides means to cleanup after the call.
         /// If the call has already finished normally (request stream has been completed and call result has been received), doesn't do anything.
diff --git a/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs b/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs
index 0979de606f7607b8d60fe63aa7c33c2478b3e1aa..e75108c7e57b1ce6fef350bcbc9d12dc00127a28 100644
--- a/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs
+++ b/src/csharp/Grpc.Core/AsyncDuplexStreamingCall.cs
@@ -32,7 +32,6 @@
 #endregion
 
 using System;
-using System.Runtime.CompilerServices;
 using System.Threading.Tasks;
 
 namespace Grpc.Core
@@ -40,18 +39,22 @@ namespace Grpc.Core
     /// <summary>
     /// Return type for bidirectional streaming calls.
     /// </summary>
+    /// <typeparam name="TRequest">Request message type for this call.</typeparam>
+    /// <typeparam name="TResponse">Response message type for this call.</typeparam>
     public sealed class AsyncDuplexStreamingCall<TRequest, TResponse> : IDisposable
     {
         readonly IClientStreamWriter<TRequest> requestStream;
         readonly IAsyncStreamReader<TResponse> responseStream;
+        readonly Task<Metadata> responseHeadersAsync;
         readonly Func<Status> getStatusFunc;
         readonly Func<Metadata> getTrailersFunc;
         readonly Action disposeAction;
 
-        public AsyncDuplexStreamingCall(IClientStreamWriter<TRequest> requestStream, IAsyncStreamReader<TResponse> responseStream, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
+        internal AsyncDuplexStreamingCall(IClientStreamWriter<TRequest> requestStream, IAsyncStreamReader<TResponse> responseStream, Task<Metadata> responseHeadersAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
         {
             this.requestStream = requestStream;
             this.responseStream = responseStream;
+            this.responseHeadersAsync = responseHeadersAsync;
             this.getStatusFunc = getStatusFunc;
             this.getTrailersFunc = getTrailersFunc;
             this.disposeAction = disposeAction;
@@ -79,6 +82,17 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// Asynchronous access to response headers.
+        /// </summary>
+        public Task<Metadata> ResponseHeadersAsync
+        {
+            get
+            {
+                return this.responseHeadersAsync;
+            }
+        }
+
         /// <summary>
         /// Gets the call status if the call has already finished.
         /// Throws InvalidOperationException otherwise.
diff --git a/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs b/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs
index 380efcdb0e29530ee4ea9f4d54bab97a3229fe90..f9530919848140fb9e1d218536b370d7915ce9ae 100644
--- a/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs
+++ b/src/csharp/Grpc.Core/AsyncServerStreamingCall.cs
@@ -32,7 +32,6 @@
 #endregion
 
 using System;
-using System.Runtime.CompilerServices;
 using System.Threading.Tasks;
 
 namespace Grpc.Core
@@ -40,16 +39,19 @@ namespace Grpc.Core
     /// <summary>
     /// Return type for server streaming calls.
     /// </summary>
+    /// <typeparam name="TResponse">Response message type for this call.</typeparam>
     public sealed class AsyncServerStreamingCall<TResponse> : IDisposable
     {
         readonly IAsyncStreamReader<TResponse> responseStream;
+        readonly Task<Metadata> responseHeadersAsync;
         readonly Func<Status> getStatusFunc;
         readonly Func<Metadata> getTrailersFunc;
         readonly Action disposeAction;
 
-        public AsyncServerStreamingCall(IAsyncStreamReader<TResponse> responseStream, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
+        internal AsyncServerStreamingCall(IAsyncStreamReader<TResponse> responseStream, Task<Metadata> responseHeadersAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
         {
             this.responseStream = responseStream;
+            this.responseHeadersAsync = responseHeadersAsync;
             this.getStatusFunc = getStatusFunc;
             this.getTrailersFunc = getTrailersFunc;
             this.disposeAction = disposeAction;
@@ -66,6 +68,17 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// Asynchronous access to response headers.
+        /// </summary>
+        public Task<Metadata> ResponseHeadersAsync
+        {
+            get
+            {
+                return this.responseHeadersAsync;
+            }
+        }
+
         /// <summary>
         /// Gets the call status if the call has already finished.
         /// Throws InvalidOperationException otherwise.
diff --git a/src/csharp/Grpc.Core/AsyncUnaryCall.cs b/src/csharp/Grpc.Core/AsyncUnaryCall.cs
index 224e34391603fd68a23b2ef1a24dfd593f2d73bb..97df8f5e91bc13fa88c602bbbfe467946573dfdd 100644
--- a/src/csharp/Grpc.Core/AsyncUnaryCall.cs
+++ b/src/csharp/Grpc.Core/AsyncUnaryCall.cs
@@ -40,16 +40,19 @@ namespace Grpc.Core
     /// <summary>
     /// Return type for single request - single response call.
     /// </summary>
+    /// <typeparam name="TResponse">Response message type for this call.</typeparam>
     public sealed class AsyncUnaryCall<TResponse> : IDisposable
     {
         readonly Task<TResponse> responseAsync;
+        readonly Task<Metadata> responseHeadersAsync;
         readonly Func<Status> getStatusFunc;
         readonly Func<Metadata> getTrailersFunc;
         readonly Action disposeAction;
 
-        public AsyncUnaryCall(Task<TResponse> responseAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
+        internal AsyncUnaryCall(Task<TResponse> responseAsync, Task<Metadata> responseHeadersAsync, Func<Status> getStatusFunc, Func<Metadata> getTrailersFunc, Action disposeAction)
         {
             this.responseAsync = responseAsync;
+            this.responseHeadersAsync = responseHeadersAsync;
             this.getStatusFunc = getStatusFunc;
             this.getTrailersFunc = getTrailersFunc;
             this.disposeAction = disposeAction;
@@ -66,6 +69,17 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// Asynchronous access to response headers.
+        /// </summary>
+        public Task<Metadata> ResponseHeadersAsync
+        {
+            get
+            {
+                return this.responseHeadersAsync;
+            }
+        }
+
         /// <summary>
         /// Allows awaiting this object directly.
         /// </summary>
diff --git a/src/csharp/Grpc.Core/CallInvocationDetails.cs b/src/csharp/Grpc.Core/CallInvocationDetails.cs
index 6565073fc5ed14df9cdeecb821a08a782d0c5619..8228b8f317f92ea8aa65485e7ed79a360d7cac5c 100644
--- a/src/csharp/Grpc.Core/CallInvocationDetails.cs
+++ b/src/csharp/Grpc.Core/CallInvocationDetails.cs
@@ -40,6 +40,8 @@ namespace Grpc.Core
     /// <summary>
     /// Details about a client-side call to be invoked.
     /// </summary>
+    /// <typeparam name="TRequest">Request message type for the call.</typeparam>
+    /// <typeparam name="TResponse">Response message type for the call.</typeparam>
     public struct CallInvocationDetails<TRequest, TResponse>
     {
         readonly Channel channel;
@@ -50,7 +52,7 @@ namespace Grpc.Core
         CallOptions options;
 
         /// <summary>
-        /// Initializes a new instance of the <see cref="Grpc.Core.CallInvocationDetails`2"/> struct.
+        /// Initializes a new instance of the <see cref="Grpc.Core.CallInvocationDetails{TRequest,TResponse}"/> struct.
         /// </summary>
         /// <param name="channel">Channel to use for this call.</param>
         /// <param name="method">Method to call.</param>
@@ -61,7 +63,7 @@ namespace Grpc.Core
         }
 
         /// <summary>
-        /// Initializes a new instance of the <see cref="Grpc.Core.CallInvocationDetails`2"/> struct.
+        /// Initializes a new instance of the <see cref="Grpc.Core.CallInvocationDetails{TRequest,TResponse}"/> struct.
         /// </summary>
         /// <param name="channel">Channel to use for this call.</param>
         /// <param name="method">Method to call.</param>
@@ -73,7 +75,7 @@ namespace Grpc.Core
         }
 
         /// <summary>
-        /// Initializes a new instance of the <see cref="Grpc.Core.CallInvocationDetails`2"/> struct.
+        /// Initializes a new instance of the <see cref="Grpc.Core.CallInvocationDetails{TRequest,TResponse}"/> struct.
         /// </summary>
         /// <param name="channel">Channel to use for this call.</param>
         /// <param name="method">Qualified method name.</param>
@@ -158,7 +160,7 @@ namespace Grpc.Core
         }
 
         /// <summary>
-        /// Returns new instance of <see cref="CallInvocationDetails"/> with
+        /// Returns new instance of <see cref="CallInvocationDetails{TRequest, TResponse}"/> with
         /// <c>Options</c> set to the value provided. Values of all other fields are preserved.
         /// </summary>
         public CallInvocationDetails<TRequest, TResponse> WithOptions(CallOptions options)
diff --git a/src/csharp/Grpc.Core/CallOptions.cs b/src/csharp/Grpc.Core/CallOptions.cs
index 3dfe80b48ce3e48c3d2e0fb187d078c8d016689e..c3bc9c31564753582c156b54a169353c8662430e 100644
--- a/src/csharp/Grpc.Core/CallOptions.cs
+++ b/src/csharp/Grpc.Core/CallOptions.cs
@@ -118,6 +118,7 @@ namespace Grpc.Core
         /// Returns new instance of <see cref="CallOptions"/> with
         /// <c>Headers</c> set to the value provided. Values of all other fields are preserved.
         /// </summary>
+        /// <param name="headers">The headers.</param>
         public CallOptions WithHeaders(Metadata headers)
         {
             var newOptions = this;
@@ -129,6 +130,7 @@ namespace Grpc.Core
         /// Returns new instance of <see cref="CallOptions"/> with
         /// <c>Deadline</c> set to the value provided. Values of all other fields are preserved.
         /// </summary>
+        /// <param name="deadline">The deadline.</param>
         public CallOptions WithDeadline(DateTime deadline)
         {
             var newOptions = this;
@@ -140,6 +142,7 @@ namespace Grpc.Core
         /// Returns new instance of <see cref="CallOptions"/> with
         /// <c>CancellationToken</c> set to the value provided. Values of all other fields are preserved.
         /// </summary>
+        /// <param name="cancellationToken">The cancellation token.</param>
         public CallOptions WithCancellationToken(CancellationToken cancellationToken)
         {
             var newOptions = this;
diff --git a/src/csharp/Grpc.Core/Calls.cs b/src/csharp/Grpc.Core/Calls.cs
index 7067456638a59f46a73f3aac054c4688acf27a54..94b3c2fe655ee06226c9d04f922b8588d29d73d9 100644
--- a/src/csharp/Grpc.Core/Calls.cs
+++ b/src/csharp/Grpc.Core/Calls.cs
@@ -74,7 +74,7 @@ namespace Grpc.Core
         {
             var asyncCall = new AsyncCall<TRequest, TResponse>(call);
             var asyncResult = asyncCall.UnaryCallAsync(req);
-            return new AsyncUnaryCall<TResponse>(asyncResult, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
+            return new AsyncUnaryCall<TResponse>(asyncResult, asyncCall.ResponseHeadersAsync, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
         }
 
         /// <summary>
@@ -93,13 +93,14 @@ namespace Grpc.Core
             var asyncCall = new AsyncCall<TRequest, TResponse>(call);
             asyncCall.StartServerStreamingCall(req);
             var responseStream = new ClientResponseStream<TRequest, TResponse>(asyncCall);
-            return new AsyncServerStreamingCall<TResponse>(responseStream, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
+            return new AsyncServerStreamingCall<TResponse>(responseStream, asyncCall.ResponseHeadersAsync, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
         }
 
         /// <summary>
         /// Invokes a client streaming call asynchronously.
         /// In client streaming scenario, client sends a stream of requests and server responds with a single response.
         /// </summary>
+        /// <param name="call">The call defintion.</param>
         /// <returns>An awaitable call object providing access to the response.</returns>
         /// <typeparam name="TRequest">Type of request messages.</typeparam>
         /// <typeparam name="TResponse">The of response message.</typeparam>
@@ -110,7 +111,7 @@ namespace Grpc.Core
             var asyncCall = new AsyncCall<TRequest, TResponse>(call);
             var resultTask = asyncCall.ClientStreamingCallAsync();
             var requestStream = new ClientRequestStream<TRequest, TResponse>(asyncCall);
-            return new AsyncClientStreamingCall<TRequest, TResponse>(requestStream, resultTask, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
+            return new AsyncClientStreamingCall<TRequest, TResponse>(requestStream, resultTask, asyncCall.ResponseHeadersAsync, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
         }
 
         /// <summary>
@@ -130,7 +131,7 @@ namespace Grpc.Core
             asyncCall.StartDuplexStreamingCall();
             var requestStream = new ClientRequestStream<TRequest, TResponse>(asyncCall);
             var responseStream = new ClientResponseStream<TRequest, TResponse>(asyncCall);
-            return new AsyncDuplexStreamingCall<TRequest, TResponse>(requestStream, responseStream, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
+            return new AsyncDuplexStreamingCall<TRequest, TResponse>(requestStream, responseStream, asyncCall.ResponseHeadersAsync, asyncCall.GetStatus, asyncCall.GetTrailers, asyncCall.Cancel);
         }
     }
 }
diff --git a/src/csharp/Grpc.Core/Channel.cs b/src/csharp/Grpc.Core/Channel.cs
index 64c6adf2bfcd48d98777dd0224228dd57e50de68..f1942727cde48a9837a533332e7f9a34bcd3aac1 100644
--- a/src/csharp/Grpc.Core/Channel.cs
+++ b/src/csharp/Grpc.Core/Channel.cs
@@ -43,17 +43,23 @@ using Grpc.Core.Utils;
 namespace Grpc.Core
 {
     /// <summary>
-    /// gRPC Channel
+    /// Represents a gRPC channel. Channels are an abstraction of long-lived connections to remote servers.
+    /// More client objects can reuse the same channel. Creating a channel is an expensive operation compared to invoking
+    /// a remote call so in general you should reuse a single channel for as many calls as possible.
     /// </summary>
-    public class Channel : IDisposable
+    public class Channel
     {
         static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<Channel>();
 
+        readonly object myLock = new object();
+        readonly AtomicCounter activeCallCounter = new AtomicCounter();
+
         readonly string target;
         readonly GrpcEnvironment environment;
         readonly ChannelSafeHandle handle;
         readonly List<ChannelOption> options;
-        bool disposed;
+
+        bool shutdownRequested;
 
         /// <summary>
         /// Creates a channel that connects to a specific host.
@@ -65,7 +71,7 @@ namespace Grpc.Core
         public Channel(string target, Credentials credentials, IEnumerable<ChannelOption> options = null)
         {
             this.target = Preconditions.CheckNotNull(target, "target");
-            this.environment = GrpcEnvironment.GetInstance();
+            this.environment = GrpcEnvironment.AddRef();
             this.options = options != null ? new List<ChannelOption>(options) : new List<ChannelOption>();
 
             EnsureUserAgentChannelOption(this.options);
@@ -157,6 +163,7 @@ namespace Grpc.Core
         /// There is no need to call this explicitly unless your use case requires that.
         /// Starting an RPC on a new channel will request connection implicitly.
         /// </summary>
+        /// <param name="deadline">The deadline. <c>null</c> indicates no deadline.</param>
         public async Task ConnectAsync(DateTime? deadline = null)
         {
             var currentState = handle.CheckConnectivityState(true);
@@ -172,12 +179,26 @@ namespace Grpc.Core
         }
 
         /// <summary>
-        /// Destroys the underlying channel.
+        /// Waits until there are no more active calls for this channel and then cleans up
+        /// resources used by this channel.
         /// </summary>
-        public void Dispose()
+        public async Task ShutdownAsync()
         {
-            Dispose(true);
-            GC.SuppressFinalize(this);
+            lock (myLock)
+            {
+                Preconditions.CheckState(!shutdownRequested);
+                shutdownRequested = true;
+            }
+
+            var activeCallCount = activeCallCounter.Count;
+            if (activeCallCount > 0)
+            {
+                Logger.Warning("Channel shutdown was called but there are still {0} active calls for that channel.", activeCallCount);
+            }
+
+            handle.Dispose();
+
+            await Task.Run(() => GrpcEnvironment.Release());
         }
 
         internal ChannelSafeHandle Handle
@@ -196,13 +217,20 @@ namespace Grpc.Core
             }
         }
 
-        protected virtual void Dispose(bool disposing)
+        internal void AddCallReference(object call)
         {
-            if (disposing && handle != null && !disposed)
-            {
-                disposed = true;
-                handle.Dispose();
-            }
+            activeCallCounter.Increment();
+
+            bool success = false;
+            handle.DangerousAddRef(ref success);
+            Preconditions.CheckState(success);
+        }
+
+        internal void RemoveCallReference(object call)
+        {
+            handle.DangerousRelease();
+
+            activeCallCounter.Decrement();
         }
 
         private static void EnsureUserAgentChannelOption(List<ChannelOption> options)
diff --git a/src/csharp/Grpc.Core/ChannelOptions.cs b/src/csharp/Grpc.Core/ChannelOptions.cs
index 0cb2953f2c2bcf85dfbf4cc5c59be68461054a14..f5ef63af54424e11a5015d9d0ae44d0c1c266822 100644
--- a/src/csharp/Grpc.Core/ChannelOptions.cs
+++ b/src/csharp/Grpc.Core/ChannelOptions.cs
@@ -44,9 +44,19 @@ namespace Grpc.Core
     /// </summary>
     public sealed class ChannelOption
     {
+        /// <summary>
+        /// Type of <c>ChannelOption</c>.
+        /// </summary>
         public enum OptionType
         {
+            /// <summary>
+            /// Channel option with integer value.
+            /// </summary>
             Integer,
+            
+            /// <summary>
+            /// Channel option with string value.
+            /// </summary>
             String
         }
 
@@ -71,7 +81,7 @@ namespace Grpc.Core
         /// Creates a channel option with an integer value.
         /// </summary>
         /// <param name="name">Name.</param>
-        /// <param name="stringValue">String value.</param>
+        /// <param name="intValue">Integer value.</param>
         public ChannelOption(string name, int intValue)
         {
             this.type = OptionType.Integer;
@@ -79,6 +89,9 @@ namespace Grpc.Core
             this.intValue = intValue;
         }
 
+        /// <summary>
+        /// Gets the type of the <c>ChannelOption</c>.
+        /// </summary>
         public OptionType Type
         {
             get
@@ -87,6 +100,9 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// Gets the name of the <c>ChannelOption</c>.
+        /// </summary>
         public string Name
         {
             get
@@ -95,6 +111,9 @@ namespace Grpc.Core
             }    
         }
 
+        /// <summary>
+        /// Gets the integer value the <c>ChannelOption</c>.
+        /// </summary>
         public int IntValue
         {
             get
@@ -104,6 +123,9 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// Gets the string value the <c>ChannelOption</c>.
+        /// </summary>
         public string StringValue
         {
             get
@@ -140,7 +162,7 @@ namespace Grpc.Core
         /// <summary>Primary user agent: goes at the start of the user-agent metadata</summary>
         public const string PrimaryUserAgentString = "grpc.primary_user_agent";
 
-        /// <summary> Secondary user agent: goes at the end of the user-agent metadata</summary>
+        /// <summary>Secondary user agent: goes at the end of the user-agent metadata</summary>
         public const string SecondaryUserAgentString = "grpc.secondary_user_agent";
 
         /// <summary>
diff --git a/src/csharp/Grpc.Core/ClientBase.cs b/src/csharp/Grpc.Core/ClientBase.cs
index f240d777b9c4a014cbc82d2a3b6fa77b0913342a..f4533e735cbc802fbab34ee1766c13b3a5af7c7f 100644
--- a/src/csharp/Grpc.Core/ClientBase.cs
+++ b/src/csharp/Grpc.Core/ClientBase.cs
@@ -32,15 +32,15 @@
 #endregion
 
 using System;
-using System.Collections.Generic;
 using System.Text.RegularExpressions;
-
-using Grpc.Core.Internal;
-using Grpc.Core.Utils;
+using System.Threading.Tasks;
 
 namespace Grpc.Core
 {
-    public delegate void MetadataInterceptorDelegate(string authUri, Metadata metadata);
+    /// <summary>
+    /// Interceptor for call headers.
+    /// </summary>
+    public delegate void HeaderInterceptor(IMethod method, string authUri, Metadata metadata);
 
     /// <summary>
     /// Base class for client-side stubs.
@@ -53,6 +53,10 @@ namespace Grpc.Core
         readonly Channel channel;
         readonly string authUriBase;
 
+        /// <summary>
+        /// Initializes a new instance of <c>ClientBase</c> class.
+        /// </summary>
+        /// <param name="channel">The channel to use for remote call invocation.</param>
         public ClientBase(Channel channel)
         {
             this.channel = channel;
@@ -60,10 +64,10 @@ namespace Grpc.Core
         }
 
         /// <summary>
-        /// Can be used to register a custom header (initial metadata) interceptor.
-        /// The delegate each time before a new call on this client is started.
+        /// Can be used to register a custom header (request metadata) interceptor.
+        /// The interceptor is invoked each time a new call on this client is started.
         /// </summary>
-        public MetadataInterceptorDelegate HeaderInterceptor
+        public HeaderInterceptor HeaderInterceptor
         {
             get;
             set;
@@ -95,6 +99,11 @@ namespace Grpc.Core
         /// <summary>
         /// Creates a new call to given method.
         /// </summary>
+        /// <param name="method">The method to invoke.</param>
+        /// <param name="options">The call options.</param>
+        /// <typeparam name="TRequest">Request message type.</typeparam>
+        /// <typeparam name="TResponse">Response message type.</typeparam>
+        /// <returns>The call invocation details.</returns>
         protected CallInvocationDetails<TRequest, TResponse> CreateCall<TRequest, TResponse>(Method<TRequest, TResponse> method, CallOptions options)
             where TRequest : class
             where TResponse : class
@@ -107,7 +116,7 @@ namespace Grpc.Core
                     options = options.WithHeaders(new Metadata());
                 }
                 var authUri = authUriBase != null ? authUriBase + method.ServiceName : null;
-                interceptor(authUri, options.Headers);
+                interceptor(method, authUri, options.Headers);
             }
             return new CallInvocationDetails<TRequest, TResponse>(channel, method, Host, options);
         }
@@ -119,7 +128,8 @@ namespace Grpc.Core
         internal static string GetAuthUriBase(string target)
         {
             var match = ChannelTargetPattern.Match(target);
-            if (!match.Success) {
+            if (!match.Success)
+            {
                 return null;
             }
             return "https://" + match.Groups[2].Value + "/";
diff --git a/src/csharp/Grpc.Core/ContextPropagationToken.cs b/src/csharp/Grpc.Core/ContextPropagationToken.cs
index 2e4bfc9e4776877699e405ed6d5bbd24856d1fd9..1d899b97fd55d7d78159f9e5d13148d4178efa2c 100644
--- a/src/csharp/Grpc.Core/ContextPropagationToken.cs
+++ b/src/csharp/Grpc.Core/ContextPropagationToken.cs
@@ -44,8 +44,8 @@ namespace Grpc.Core
     /// In situations when a backend is making calls to another backend,
     /// it makes sense to propagate properties like deadline and cancellation 
     /// token of the server call to the child call.
-    /// C core provides some other contexts (like tracing context) that
-    /// are not accessible to C# layer, but this token still allows propagating them.
+    /// The gRPC native layer provides some other contexts (like tracing context) that
+    /// are not accessible to explicitly C# layer, but this token still allows propagating them.
     /// </summary>
     public class ContextPropagationToken
     {
@@ -132,7 +132,6 @@ namespace Grpc.Core
         bool propagateDeadline;
         bool propagateCancellation;
 
-
         /// <summary>
         /// Creates new context propagation options.
         /// </summary>
@@ -144,13 +143,13 @@ namespace Grpc.Core
             this.propagateCancellation = propagateCancellation;
         }
             
-        /// <value><c>true</c> if parent call's deadline should be propagated to the child call.</value>
+        /// <summary><c>true</c> if parent call's deadline should be propagated to the child call.</summary>
         public bool IsPropagateDeadline
         {
             get { return this.propagateDeadline; }
         }
 
-        /// <value><c>true</c> if parent call's cancellation token should be propagated to the child call.</value>
+        /// <summary><c>true</c> if parent call's cancellation token should be propagated to the child call.</summary>
         public bool IsPropagateCancellation
         {
             get { return this.propagateCancellation; }
diff --git a/src/csharp/Grpc.Core/Grpc.Core.csproj b/src/csharp/Grpc.Core/Grpc.Core.csproj
index 055aff14448583142a498b620c2f0241406e8ae1..ad2af17bc75abcd8b81568f35ee8b35a6a127c5a 100644
--- a/src/csharp/Grpc.Core/Grpc.Core.csproj
+++ b/src/csharp/Grpc.Core/Grpc.Core.csproj
@@ -49,6 +49,7 @@
     <Compile Include="AsyncDuplexStreamingCall.cs" />
     <Compile Include="AsyncServerStreamingCall.cs" />
     <Compile Include="IClientStreamWriter.cs" />
+    <Compile Include="Internal\INativeCall.cs" />
     <Compile Include="IServerStreamWriter.cs" />
     <Compile Include="IAsyncStreamWriter.cs" />
     <Compile Include="IAsyncStreamReader.cs" />
diff --git a/src/csharp/Grpc.Core/GrpcEnvironment.cs b/src/csharp/Grpc.Core/GrpcEnvironment.cs
index 30d8c802355c72cbf485fd5bd4f9225e82755325..e7c04185c23cc56f51bbf743240bbe6ce4a44d93 100644
--- a/src/csharp/Grpc.Core/GrpcEnvironment.cs
+++ b/src/csharp/Grpc.Core/GrpcEnvironment.cs
@@ -58,6 +58,7 @@ namespace Grpc.Core
 
         static object staticLock = new object();
         static GrpcEnvironment instance;
+        static int refCount;
 
         static ILogger logger = new ConsoleLogger();
 
@@ -67,13 +68,14 @@ namespace Grpc.Core
         bool isClosed;
 
         /// <summary>
-        /// Returns an instance of initialized gRPC environment.
-        /// Subsequent invocations return the same instance unless Shutdown has been called first.
+        /// Returns a reference-counted instance of initialized gRPC environment.
+        /// Subsequent invocations return the same instance unless reference count has dropped to zero previously.
         /// </summary>
-        internal static GrpcEnvironment GetInstance()
+        internal static GrpcEnvironment AddRef()
         {
             lock (staticLock)
             {
+                refCount++;
                 if (instance == null)
                 {
                     instance = new GrpcEnvironment();
@@ -83,14 +85,16 @@ namespace Grpc.Core
         }
 
         /// <summary>
-        /// Shuts down the gRPC environment if it was initialized before.
-        /// Blocks until the environment has been fully shutdown.
+        /// Decrements the reference count for currently active environment and shuts down the gRPC environment if reference count drops to zero.
+        /// (and blocks until the environment has been fully shutdown).
         /// </summary>
-        public static void Shutdown()
+        internal static void Release()
         {
             lock (staticLock)
             {
-                if (instance != null)
+                Preconditions.CheckState(refCount > 0);
+                refCount--;
+                if (refCount == 0)
                 {
                     instance.Close();
                     instance = null;
@@ -98,6 +102,14 @@ namespace Grpc.Core
             }
         }
 
+        internal static int GetRefCount()
+        {
+            lock (staticLock)
+            {
+                return refCount;
+            }
+        }
+
         /// <summary>
         /// Gets application-wide logger used by gRPC.
         /// </summary>
@@ -125,12 +137,10 @@ namespace Grpc.Core
         private GrpcEnvironment()
         {
             NativeLogRedirector.Redirect();
-            grpcsharp_init();
+            GrpcNativeInit();
             completionRegistry = new CompletionRegistry(this);
             threadPool = new GrpcThreadPool(this, THREAD_POOL_SIZE);
             threadPool.Start();
-            // TODO: use proper logging here
-            Logger.Info("gRPC initialized.");
         }
 
         /// <summary>
@@ -175,6 +185,16 @@ namespace Grpc.Core
             return Marshal.PtrToStringAnsi(ptr);
         }
 
+        internal static void GrpcNativeInit()
+        {
+            grpcsharp_init();
+        }
+
+        internal static void GrpcNativeShutdown()
+        {
+            grpcsharp_shutdown();
+        }
+
         /// <summary>
         /// Shuts down this environment.
         /// </summary>
@@ -185,12 +205,10 @@ namespace Grpc.Core
                 throw new InvalidOperationException("Close has already been called");
             }
             threadPool.Stop();
-            grpcsharp_shutdown();
+            GrpcNativeShutdown();
             isClosed = true;
 
             debugStats.CheckOK();
-
-            Logger.Info("gRPC shutdown.");
         }
     }
 }
diff --git a/src/csharp/Grpc.Core/IAsyncStreamReader.cs b/src/csharp/Grpc.Core/IAsyncStreamReader.cs
index c0a0674e500d64cd3c0857fe81ecd9e11cbd0a87..49e1ea783253b1124e750a4bbd9baebe82c07972 100644
--- a/src/csharp/Grpc.Core/IAsyncStreamReader.cs
+++ b/src/csharp/Grpc.Core/IAsyncStreamReader.cs
@@ -42,7 +42,7 @@ namespace Grpc.Core
     /// <summary>
     /// A stream of messages to be read.
     /// </summary>
-    /// <typeparam name="T"></typeparam>
+    /// <typeparam name="T">The message type.</typeparam>
     public interface IAsyncStreamReader<T> : IAsyncEnumerator<T>
     {
         // TODO(jtattermusch): consider just using IAsyncEnumerator instead of this interface.
diff --git a/src/csharp/Grpc.Core/IAsyncStreamWriter.cs b/src/csharp/Grpc.Core/IAsyncStreamWriter.cs
index 4e2acb9c7124eed3180453cafc9e880f45e37c53..9c0d2d312ebde149c9ee82d019c60cf1f6ec3a89 100644
--- a/src/csharp/Grpc.Core/IAsyncStreamWriter.cs
+++ b/src/csharp/Grpc.Core/IAsyncStreamWriter.cs
@@ -42,7 +42,7 @@ namespace Grpc.Core
     /// <summary>
     /// A writable stream of messages.
     /// </summary>
-    /// <typeparam name="T"></typeparam>
+    /// <typeparam name="T">The message type.</typeparam>
     public interface IAsyncStreamWriter<T>
     {
         /// <summary>
@@ -56,7 +56,7 @@ namespace Grpc.Core
         /// If null, default options will be used.
         /// Once set, this property maintains its value across subsequent
         /// writes.
-        /// <value>The write options.</value>
+        /// </summary>
         WriteOptions WriteOptions { get; set; }
     }
 }
diff --git a/src/csharp/Grpc.Core/IClientStreamWriter.cs b/src/csharp/Grpc.Core/IClientStreamWriter.cs
index a3028bc37417fcbf372dd4f943be4d5ab2ff4e4a..3fd0774db57efb3b696adf3485372c0286259cda 100644
--- a/src/csharp/Grpc.Core/IClientStreamWriter.cs
+++ b/src/csharp/Grpc.Core/IClientStreamWriter.cs
@@ -42,7 +42,7 @@ namespace Grpc.Core
     /// <summary>
     /// Client-side writable stream of messages with Close capability.
     /// </summary>
-    /// <typeparam name="T"></typeparam>
+    /// <typeparam name="T">The message type.</typeparam>
     public interface IClientStreamWriter<T> : IAsyncStreamWriter<T>
     {
         /// <summary>
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCall.cs b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
index 2c3e3d75eae356916cabdd1e9d66471282da5a36..be5d611a53826f6400d6ff4bdc2bd0373c7ed93d 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCall.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCall.cs
@@ -51,22 +51,35 @@ namespace Grpc.Core.Internal
         static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<AsyncCall<TRequest, TResponse>>();
 
         readonly CallInvocationDetails<TRequest, TResponse> details;
+        readonly INativeCall injectedNativeCall;  // for testing
 
         // Completion of a pending unary response if not null.
         TaskCompletionSource<TResponse> unaryResponseTcs;
 
+        // Indicates that steaming call has finished.
+        TaskCompletionSource<object> streamingCallFinishedTcs = new TaskCompletionSource<object>();
+
+        // Response headers set here once received.
+        TaskCompletionSource<Metadata> responseHeadersTcs = new TaskCompletionSource<Metadata>();
+
         // Set after status is received. Used for both unary and streaming response calls.
         ClientSideStatus? finishedStatus;
 
-        bool readObserverCompleted;  // True if readObserver has already been completed.
-
         public AsyncCall(CallInvocationDetails<TRequest, TResponse> callDetails)
-            : base(callDetails.RequestMarshaller.Serializer, callDetails.ResponseMarshaller.Deserializer)
+            : base(callDetails.RequestMarshaller.Serializer, callDetails.ResponseMarshaller.Deserializer, callDetails.Channel.Environment)
         {
             this.details = callDetails.WithOptions(callDetails.Options.Normalize());
             this.initialMetadataSent = true;  // we always send metadata at the very beginning of the call.
         }
 
+        /// <summary>
+        /// This constructor should only be used for testing.
+        /// </summary>
+        public AsyncCall(CallInvocationDetails<TRequest, TResponse> callDetails, INativeCall injectedNativeCall) : this(callDetails)
+        {
+            this.injectedNativeCall = injectedNativeCall;
+        }
+
         // TODO: this method is not Async, so it shouldn't be in AsyncCall class, but 
         // it is reusing fair amount of code in this class, so we are leaving it here.
         /// <summary>
@@ -100,7 +113,7 @@ namespace Grpc.Core.Internal
                         bool success = (ev.success != 0);
                         try
                         {
-                            HandleUnaryResponse(success, ctx);
+                            HandleUnaryResponse(success, ctx.GetReceivedStatusOnClient(), ctx.GetReceivedMessage(), ctx.GetReceivedInitialMetadata());
                         }
                         catch (Exception e)
                         {
@@ -125,7 +138,7 @@ namespace Grpc.Core.Internal
                 Preconditions.CheckState(!started);
                 started = true;
 
-                Initialize(details.Channel.Environment.CompletionQueue);
+                Initialize(environment.CompletionQueue);
 
                 halfcloseRequested = true;
                 readingDone = true;
@@ -152,7 +165,7 @@ namespace Grpc.Core.Internal
                 Preconditions.CheckState(!started);
                 started = true;
 
-                Initialize(details.Channel.Environment.CompletionQueue);
+                Initialize(environment.CompletionQueue);
 
                 readingDone = true;
 
@@ -176,10 +189,9 @@ namespace Grpc.Core.Internal
                 Preconditions.CheckState(!started);
                 started = true;
 
-                Initialize(details.Channel.Environment.CompletionQueue);
+                Initialize(environment.CompletionQueue);
 
                 halfcloseRequested = true;
-                halfclosed = true;  // halfclose not confirmed yet, but it will be once finishedHandler is called.
 
                 byte[] payload = UnsafeSerialize(msg);
 
@@ -187,6 +199,7 @@ namespace Grpc.Core.Internal
                 {
                     call.StartServerStreaming(HandleFinished, payload, metadataArray, GetWriteFlagsForCall());
                 }
+                call.StartReceiveInitialMetadata(HandleReceivedResponseHeaders);
             }
         }
 
@@ -201,12 +214,13 @@ namespace Grpc.Core.Internal
                 Preconditions.CheckState(!started);
                 started = true;
 
-                Initialize(details.Channel.Environment.CompletionQueue);
+                Initialize(environment.CompletionQueue);
 
                 using (var metadataArray = MetadataArraySafeHandle.Create(details.Options.Headers))
                 {
                     call.StartDuplexStreaming(HandleFinished, metadataArray);
                 }
+                call.StartReceiveInitialMetadata(HandleReceivedResponseHeaders);
             }
         }
 
@@ -247,6 +261,28 @@ namespace Grpc.Core.Internal
             }
         }
 
+        /// <summary>
+        /// Get the task that completes once if streaming call finishes with ok status and throws RpcException with given status otherwise.
+        /// </summary>
+        public Task StreamingCallFinishedTask
+        {
+            get
+            {
+                return streamingCallFinishedTcs.Task;
+            }
+        }
+
+        /// <summary>
+        /// Get the task that completes once response headers are received.
+        /// </summary>
+        public Task<Metadata> ResponseHeadersAsync
+        {
+            get
+            {
+                return responseHeadersTcs.Task;
+            }
+        }
+
         /// <summary>
         /// Gets the resulting status if the call has already finished.
         /// Throws InvalidOperationException otherwise.
@@ -281,51 +317,31 @@ namespace Grpc.Core.Internal
             }
         }
 
-        /// <summary>
-        /// On client-side, we only fire readCompletionDelegate once all messages have been read 
-        /// and status has been received.
-        /// </summary>
-        protected override void ProcessLastRead(AsyncCompletionDelegate<TResponse> completionDelegate)
+        protected override void OnAfterReleaseResources()
         {
-            if (completionDelegate != null && readingDone && finishedStatus.HasValue)
-            {
-                bool shouldComplete;
-                lock (myLock)
-                {
-                    shouldComplete = !readObserverCompleted;
-                    readObserverCompleted = true;
-                }
-
-                if (shouldComplete)
-                {
-                    var status = finishedStatus.Value.Status;
-                    if (status.StatusCode != StatusCode.OK)
-                    {
-                        FireCompletion(completionDelegate, default(TResponse), new RpcException(status));
-                    }
-                    else
-                    {
-                        FireCompletion(completionDelegate, default(TResponse), null);
-                    }
-                }
-            }
+            details.Channel.RemoveCallReference(this);
         }
 
-        protected override void OnReleaseResources()
+        private void Initialize(CompletionQueueSafeHandle cq)
         {
-            details.Channel.Environment.DebugStats.ActiveClientCalls.Decrement();
+            var call = CreateNativeCall(cq);
+            details.Channel.AddCallReference(this);
+            InitializeInternal(call);
+            RegisterCancellationCallback();
         }
 
-        private void Initialize(CompletionQueueSafeHandle cq)
+        private INativeCall CreateNativeCall(CompletionQueueSafeHandle cq)
         {
+            if (injectedNativeCall != null)
+            {
+                return injectedNativeCall;  // allows injecting a mock INativeCall in tests.
+            }
+
             var parentCall = details.Options.PropagationToken != null ? details.Options.PropagationToken.ParentCall : CallSafeHandle.NullInstance;
 
-            var call = details.Channel.Handle.CreateCall(details.Channel.Environment.CompletionRegistry,
+            return details.Channel.Handle.CreateCall(environment.CompletionRegistry,
                 parentCall, ContextPropagationToken.DefaultMask, cq,
                 details.Method, details.Host, Timespec.FromDateTime(details.Options.Deadline.Value));
-            details.Channel.Environment.DebugStats.ActiveClientCalls.Increment();
-            InitializeInternal(call);
-            RegisterCancellationCallback();
         }
 
         // Make sure that once cancellationToken for this call is cancelled, Cancel() will be called.
@@ -348,31 +364,31 @@ namespace Grpc.Core.Internal
         }
 
         /// <summary>
-        /// Handler for unary response completion.
+        /// Handles receive status completion for calls with streaming response.
         /// </summary>
-        private void HandleUnaryResponse(bool success, BatchContextSafeHandle ctx)
+        private void HandleReceivedResponseHeaders(bool success, Metadata responseHeaders)
         {
-            var fullStatus = ctx.GetReceivedStatusOnClient();
+            responseHeadersTcs.SetResult(responseHeaders);
+        }
 
+        /// <summary>
+        /// Handler for unary response completion.
+        /// </summary>
+        private void HandleUnaryResponse(bool success, ClientSideStatus receivedStatus, byte[] receivedMessage, Metadata responseHeaders)
+        {
             lock (myLock)
             {
                 finished = true;
-                finishedStatus = fullStatus;
-
-                halfclosed = true;
+                finishedStatus = receivedStatus;
 
                 ReleaseResourcesIfPossible();
             }
 
-            if (!success)
-            {
-                unaryResponseTcs.SetException(new RpcException(new Status(StatusCode.Internal, "Internal error occured.")));
-                return;
-            }
+            responseHeadersTcs.SetResult(responseHeaders);
 
-            var status = fullStatus.Status;
+            var status = receivedStatus.Status;
 
-            if (status.StatusCode != StatusCode.OK)
+            if (!success || status.StatusCode != StatusCode.OK)
             {
                 unaryResponseTcs.SetException(new RpcException(status));
                 return;
@@ -380,7 +396,7 @@ namespace Grpc.Core.Internal
 
             // TODO: handle deserialization error
             TResponse msg;
-            TryDeserialize(ctx.GetReceivedMessage(), out msg);
+            TryDeserialize(receivedMessage, out msg);
 
             unaryResponseTcs.SetResult(msg);
         }
@@ -388,22 +404,25 @@ namespace Grpc.Core.Internal
         /// <summary>
         /// Handles receive status completion for calls with streaming response.
         /// </summary>
-        private void HandleFinished(bool success, BatchContextSafeHandle ctx)
+        private void HandleFinished(bool success, ClientSideStatus receivedStatus)
         {
-            var fullStatus = ctx.GetReceivedStatusOnClient();
-
-            AsyncCompletionDelegate<TResponse> origReadCompletionDelegate = null;
             lock (myLock)
             {
                 finished = true;
-                finishedStatus = fullStatus;
-
-                origReadCompletionDelegate = readCompletionDelegate;
+                finishedStatus = receivedStatus;
 
                 ReleaseResourcesIfPossible();
             }
 
-            ProcessLastRead(origReadCompletionDelegate);
+            var status = receivedStatus.Status;
+
+            if (!success || status.StatusCode != StatusCode.OK)
+            {
+                streamingCallFinishedTcs.SetException(new RpcException(status));
+                return;
+            }
+
+            streamingCallFinishedTcs.SetResult(null);
         }
     }
 }
\ No newline at end of file
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
index 6ca4bbdafc5ef7a66aaf3e0e1bbfc4748eea3f36..4d2039464497ec6861270ed45e6a5f0e62e1504e 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallBase.cs
@@ -54,30 +54,30 @@ namespace Grpc.Core.Internal
         readonly Func<TWrite, byte[]> serializer;
         readonly Func<byte[], TRead> deserializer;
 
+        protected readonly GrpcEnvironment environment;
         protected readonly object myLock = new object();
 
-        protected CallSafeHandle call;
+        protected INativeCall call;
         protected bool disposed;
 
         protected bool started;
-        protected bool errorOccured;
         protected bool cancelRequested;
 
         protected AsyncCompletionDelegate<object> sendCompletionDelegate;  // Completion of a pending send or sendclose if not null.
         protected AsyncCompletionDelegate<TRead> readCompletionDelegate;  // Completion of a pending send or sendclose if not null.
 
-        protected bool readingDone;
-        protected bool halfcloseRequested;
-        protected bool halfclosed;
+        protected bool readingDone;  // True if last read (i.e. read with null payload) was already received.
+        protected bool halfcloseRequested;  // True if send close have been initiated.
         protected bool finished;  // True if close has been received from the peer.
 
         protected bool initialMetadataSent;
-        protected long streamingWritesCounter;
+        protected long streamingWritesCounter;  // Number of streaming send operations started so far.
 
-        public AsyncCallBase(Func<TWrite, byte[]> serializer, Func<byte[], TRead> deserializer)
+        public AsyncCallBase(Func<TWrite, byte[]> serializer, Func<byte[], TRead> deserializer, GrpcEnvironment environment)
         {
             this.serializer = Preconditions.CheckNotNull(serializer);
             this.deserializer = Preconditions.CheckNotNull(deserializer);
+            this.environment = Preconditions.CheckNotNull(environment);
         }
 
         /// <summary>
@@ -114,7 +114,7 @@ namespace Grpc.Core.Internal
             }
         }
 
-        protected void InitializeInternal(CallSafeHandle call)
+        protected void InitializeInternal(INativeCall call)
         {
             lock (myLock)
             {
@@ -159,16 +159,6 @@ namespace Grpc.Core.Internal
             }
         }
 
-        // TODO(jtattermusch): find more fitting name for this method.
-        /// <summary>
-        /// Default behavior just completes the read observer, but more sofisticated behavior might be required
-        /// by subclasses.
-        /// </summary>
-        protected virtual void ProcessLastRead(AsyncCompletionDelegate<TRead> completionDelegate)
-        {
-            FireCompletion(completionDelegate, default(TRead), null);
-        }
-
         /// <summary>
         /// If there are no more pending actions and no new actions can be started, releases
         /// the underlying native resources.
@@ -177,7 +167,7 @@ namespace Grpc.Core.Internal
         {
             if (!disposed && call != null)
             {
-                bool noMoreSendCompletions = halfclosed || (cancelRequested && sendCompletionDelegate == null);
+                bool noMoreSendCompletions = sendCompletionDelegate == null && (halfcloseRequested || cancelRequested || finished);
                 if (noMoreSendCompletions && readingDone && finished)
                 {
                     ReleaseResources();
@@ -189,34 +179,33 @@ namespace Grpc.Core.Internal
 
         private void ReleaseResources()
         {
-            OnReleaseResources();
             if (call != null)
             {
                 call.Dispose();
             }
             disposed = true;
+            OnAfterReleaseResources();
         }
 
-        protected virtual void OnReleaseResources()
+        protected virtual void OnAfterReleaseResources()
         {
         }
 
         protected void CheckSendingAllowed()
         {
             Preconditions.CheckState(started);
-            Preconditions.CheckState(!errorOccured);
             CheckNotCancelled();
             Preconditions.CheckState(!disposed);
 
             Preconditions.CheckState(!halfcloseRequested, "Already halfclosed.");
+            Preconditions.CheckState(!finished, "Already finished.");
             Preconditions.CheckState(sendCompletionDelegate == null, "Only one write can be pending at a time");
         }
 
-        protected void CheckReadingAllowed()
+        protected virtual void CheckReadingAllowed()
         {
             Preconditions.CheckState(started);
             Preconditions.CheckState(!disposed);
-            Preconditions.CheckState(!errorOccured);
 
             Preconditions.CheckState(!readingDone, "Stream has already been closed.");
             Preconditions.CheckState(readCompletionDelegate == null, "Only one read can be pending at a time");
@@ -280,7 +269,7 @@ namespace Grpc.Core.Internal
         /// <summary>
         /// Handles send completion.
         /// </summary>
-        protected void HandleSendFinished(bool success, BatchContextSafeHandle ctx)
+        protected void HandleSendFinished(bool success)
         {
             AsyncCompletionDelegate<object> origCompletionDelegate = null;
             lock (myLock)
@@ -304,12 +293,11 @@ namespace Grpc.Core.Internal
         /// <summary>
         /// Handles halfclose completion.
         /// </summary>
-        protected void HandleHalfclosed(bool success, BatchContextSafeHandle ctx)
+        protected void HandleHalfclosed(bool success)
         {
             AsyncCompletionDelegate<object> origCompletionDelegate = null;
             lock (myLock)
             {
-                halfclosed = true;
                 origCompletionDelegate = sendCompletionDelegate;
                 sendCompletionDelegate = null;
 
@@ -329,23 +317,17 @@ namespace Grpc.Core.Internal
         /// <summary>
         /// Handles streaming read completion.
         /// </summary>
-        protected void HandleReadFinished(bool success, BatchContextSafeHandle ctx)
+        protected void HandleReadFinished(bool success, byte[] receivedMessage)
         {
-            var payload = ctx.GetReceivedMessage();
-
             AsyncCompletionDelegate<TRead> origCompletionDelegate = null;
             lock (myLock)
             {
                 origCompletionDelegate = readCompletionDelegate;
-                if (payload != null)
-                {
-                    readCompletionDelegate = null;
-                }
-                else
+                readCompletionDelegate = null;
+
+                if (receivedMessage == null)
                 {
-                    // This was the last read. Keeping the readCompletionDelegate
-                    // to be either fired by this handler or by client-side finished
-                    // handler.
+                    // This was the last read.
                     readingDone = true;
                 }
 
@@ -354,17 +336,17 @@ namespace Grpc.Core.Internal
 
             // TODO: handle the case when error occured...
 
-            if (payload != null)
+            if (receivedMessage != null)
             {
                 // TODO: handle deserialization error
                 TRead msg;
-                TryDeserialize(payload, out msg);
+                TryDeserialize(receivedMessage, out msg);
 
                 FireCompletion(origCompletionDelegate, msg, null);
             }
             else
             {
-                ProcessLastRead(origCompletionDelegate);
+                FireCompletion(origCompletionDelegate, default(TRead), null);
             }
         }
     }
diff --git a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
index 3710a65d6bb9d80d99c5cf1f001cf9776ccaa2f0..5c47251030e4525622d3ad46d413d1d7f3806712 100644
--- a/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
+++ b/src/csharp/Grpc.Core/Internal/AsyncCallServer.cs
@@ -49,17 +49,18 @@ namespace Grpc.Core.Internal
     {
         readonly TaskCompletionSource<object> finishedServersideTcs = new TaskCompletionSource<object>();
         readonly CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
-        readonly GrpcEnvironment environment;
+        readonly Server server;
 
-        public AsyncCallServer(Func<TResponse, byte[]> serializer, Func<byte[], TRequest> deserializer, GrpcEnvironment environment) : base(serializer, deserializer)
+        public AsyncCallServer(Func<TResponse, byte[]> serializer, Func<byte[], TRequest> deserializer, GrpcEnvironment environment, Server server) : base(serializer, deserializer, environment)
         {
-            this.environment = Preconditions.CheckNotNull(environment);
+            this.server = Preconditions.CheckNotNull(server);
         }
 
         public void Initialize(CallSafeHandle call)
         {
             call.SetCompletionRegistry(environment.CompletionRegistry);
-            environment.DebugStats.ActiveServerCalls.Increment();
+
+            server.AddCallReference(this);
             InitializeInternal(call);
         }
 
@@ -168,18 +169,22 @@ namespace Grpc.Core.Internal
             }
         }
 
-        protected override void OnReleaseResources()
+        protected override void CheckReadingAllowed()
         {
-            environment.DebugStats.ActiveServerCalls.Decrement();
+            base.CheckReadingAllowed();
+            Preconditions.CheckArgument(!cancelRequested);
+        }
+
+        protected override void OnAfterReleaseResources()
+        {
+            server.RemoveCallReference(this);
         }
 
         /// <summary>
         /// Handles the server side close completion.
         /// </summary>
-        private void HandleFinishedServerside(bool success, BatchContextSafeHandle ctx)
+        private void HandleFinishedServerside(bool success, bool cancelled)
         {
-            bool cancelled = ctx.GetReceivedCloseOnServerCancelled();
-
             lock (myLock)
             {
                 finished = true;
diff --git a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
index 6a2add54db583d7f897f5a233ab372e8f58e103a..3a96414bea26ce24cf0878a4857e7503c5edf440 100644
--- a/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/BatchContextSafeHandle.cs
@@ -134,7 +134,7 @@ namespace Grpc.Core.Internal
         }
 
         // Gets data of server_rpc_new completion.
-        public ServerRpcNew GetServerRpcNew()
+        public ServerRpcNew GetServerRpcNew(Server server)
         {
             var call = grpcsharp_batch_context_server_rpc_new_call(this);
 
@@ -145,7 +145,7 @@ namespace Grpc.Core.Internal
             IntPtr metadataArrayPtr = grpcsharp_batch_context_server_rpc_new_request_metadata(this);
             var metadata = MetadataArraySafeHandle.ReadMetadataFromPtrUnsafe(metadataArrayPtr);
 
-            return new ServerRpcNew(call, method, host, deadline, metadata);
+            return new ServerRpcNew(server, call, method, host, deadline, metadata);
         }
 
         // Gets data of receive_close_on_server completion.
@@ -198,14 +198,16 @@ namespace Grpc.Core.Internal
     /// </summary>
     internal struct ServerRpcNew
     {
+        readonly Server server;
         readonly CallSafeHandle call;
         readonly string method;
         readonly string host;
         readonly Timespec deadline;
         readonly Metadata requestMetadata;
 
-        public ServerRpcNew(CallSafeHandle call, string method, string host, Timespec deadline, Metadata requestMetadata)
+        public ServerRpcNew(Server server, CallSafeHandle call, string method, string host, Timespec deadline, Metadata requestMetadata)
         {
+            this.server = server;
             this.call = call;
             this.method = method;
             this.host = host;
@@ -213,6 +215,14 @@ namespace Grpc.Core.Internal
             this.requestMetadata = requestMetadata;
         }
 
+        public Server Server
+        {
+            get
+            {
+                return this.server;
+            }
+        }
+
         public CallSafeHandle Call
         {
             get
diff --git a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
index 3cb01e29bd802adf17d538fb271ea46b6b0ae421..c3611a7761f5213e58c84a08a30a67b693a88f97 100644
--- a/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CallSafeHandle.cs
@@ -38,9 +38,9 @@ using Grpc.Core.Utils;
 namespace Grpc.Core.Internal
 {
     /// <summary>
-    /// grpc_call from <grpc/grpc.h>
+    /// grpc_call from <c>grpc/grpc.h</c>
     /// </summary>
-    internal class CallSafeHandle : SafeHandleZeroIsInvalid
+    internal class CallSafeHandle : SafeHandleZeroIsInvalid, INativeCall
     {
         public static readonly CallSafeHandle NullInstance = new CallSafeHandle();
 
@@ -86,6 +86,10 @@ namespace Grpc.Core.Internal
         static extern GRPCCallError grpcsharp_call_recv_message(CallSafeHandle call,
             BatchContextSafeHandle ctx);
 
+        [DllImport("grpc_csharp_ext.dll")]
+        static extern GRPCCallError grpcsharp_call_recv_initial_metadata(CallSafeHandle call,
+            BatchContextSafeHandle ctx);
+
         [DllImport("grpc_csharp_ext.dll")]
         static extern GRPCCallError grpcsharp_call_start_serverside(CallSafeHandle call,
             BatchContextSafeHandle ctx);
@@ -109,10 +113,10 @@ namespace Grpc.Core.Internal
             this.completionRegistry = completionRegistry;
         }
 
-        public void StartUnary(BatchCompletionDelegate callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+        public void StartUnary(UnaryResponseClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient(), context.GetReceivedMessage(), context.GetReceivedInitialMetadata()));
             grpcsharp_call_start_unary(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags)
                 .CheckOk();
         }
@@ -123,66 +127,73 @@ namespace Grpc.Core.Internal
                 .CheckOk();
         }
 
-        public void StartClientStreaming(BatchCompletionDelegate callback, MetadataArraySafeHandle metadataArray)
+        public void StartClientStreaming(UnaryResponseClientHandler callback, MetadataArraySafeHandle metadataArray)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient(), context.GetReceivedMessage(), context.GetReceivedInitialMetadata()));
             grpcsharp_call_start_client_streaming(this, ctx, metadataArray).CheckOk();
         }
 
-        public void StartServerStreaming(BatchCompletionDelegate callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
+        public void StartServerStreaming(ReceivedStatusOnClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, WriteFlags writeFlags)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient()));
             grpcsharp_call_start_server_streaming(this, ctx, payload, new UIntPtr((ulong)payload.Length), metadataArray, writeFlags).CheckOk();
         }
 
-        public void StartDuplexStreaming(BatchCompletionDelegate callback, MetadataArraySafeHandle metadataArray)
+        public void StartDuplexStreaming(ReceivedStatusOnClientHandler callback, MetadataArraySafeHandle metadataArray)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedStatusOnClient()));
             grpcsharp_call_start_duplex_streaming(this, ctx, metadataArray).CheckOk();
         }
 
-        public void StartSendMessage(BatchCompletionDelegate callback, byte[] payload, WriteFlags writeFlags, bool sendEmptyInitialMetadata)
+        public void StartSendMessage(SendCompletionHandler callback, byte[] payload, WriteFlags writeFlags, bool sendEmptyInitialMetadata)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success));
             grpcsharp_call_send_message(this, ctx, payload, new UIntPtr((ulong)payload.Length), writeFlags, sendEmptyInitialMetadata).CheckOk();
         }
 
-        public void StartSendCloseFromClient(BatchCompletionDelegate callback)
+        public void StartSendCloseFromClient(SendCompletionHandler callback)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success));
             grpcsharp_call_send_close_from_client(this, ctx).CheckOk();
         }
 
-        public void StartSendStatusFromServer(BatchCompletionDelegate callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata)
+        public void StartSendStatusFromServer(SendCompletionHandler callback, Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success));
             grpcsharp_call_send_status_from_server(this, ctx, status.StatusCode, status.Detail, metadataArray, sendEmptyInitialMetadata).CheckOk();
         }
 
-        public void StartReceiveMessage(BatchCompletionDelegate callback)
+        public void StartReceiveMessage(ReceivedMessageHandler callback)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedMessage()));
             grpcsharp_call_recv_message(this, ctx).CheckOk();
         }
 
-        public void StartServerSide(BatchCompletionDelegate callback)
+        public void StartReceiveInitialMetadata(ReceivedResponseHeadersHandler callback)
+        {
+            var ctx = BatchContextSafeHandle.Create();
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedInitialMetadata()));
+            grpcsharp_call_recv_initial_metadata(this, ctx).CheckOk();
+        }
+
+        public void StartServerSide(ReceivedCloseOnServerHandler callback)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success, context.GetReceivedCloseOnServerCancelled()));
             grpcsharp_call_start_serverside(this, ctx).CheckOk();
         }
 
-        public void StartSendInitialMetadata(BatchCompletionDelegate callback, MetadataArraySafeHandle metadataArray)
+        public void StartSendInitialMetadata(SendCompletionHandler callback, MetadataArraySafeHandle metadataArray)
         {
             var ctx = BatchContextSafeHandle.Create();
-            completionRegistry.RegisterBatchCompletion(ctx, callback);
+            completionRegistry.RegisterBatchCompletion(ctx, (success, context) => callback(success));
             grpcsharp_call_send_initial_metadata(this, ctx, metadataArray).CheckOk();
         }
 
diff --git a/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs
index c12aec5a3a4667661216bd51df5c7a87d311ea02..ea5b52374e38642bf6cbaa43225fbe313fede4a8 100644
--- a/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ChannelArgsSafeHandle.cs
@@ -35,7 +35,7 @@ using System.Threading.Tasks;
 namespace Grpc.Core.Internal
 {
     /// <summary>
-    /// grpc_channel_args from <grpc/grpc.h>
+    /// grpc_channel_args from <c>grpc/grpc.h</c>
     /// </summary>
     internal class ChannelArgsSafeHandle : SafeHandleZeroIsInvalid
     {
diff --git a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs
index 7f03bf4ea562b26fc187bb0b797798d98fb94b93..7a1c6e3dacd59885feaf6ce4020e3dc7ac30b168 100644
--- a/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ChannelSafeHandle.cs
@@ -36,7 +36,7 @@ using System.Threading.Tasks;
 namespace Grpc.Core.Internal
 {
     /// <summary>
-    /// grpc_channel from <grpc/grpc.h>
+    /// grpc_channel from <c>grpc/grpc.h</c>
     /// </summary>
     internal class ChannelSafeHandle : SafeHandleZeroIsInvalid
     {
@@ -68,11 +68,17 @@ namespace Grpc.Core.Internal
 
         public static ChannelSafeHandle CreateInsecure(string target, ChannelArgsSafeHandle channelArgs)
         {
+            // Increment reference count for the native gRPC environment to make sure we don't do grpc_shutdown() before destroying the server handle.
+            // Doing so would make object finalizer crash if we end up abandoning the handle.
+            GrpcEnvironment.GrpcNativeInit();
             return grpcsharp_insecure_channel_create(target, channelArgs);
         }
 
         public static ChannelSafeHandle CreateSecure(CredentialsSafeHandle credentials, string target, ChannelArgsSafeHandle channelArgs)
         {
+            // Increment reference count for the native gRPC environment to make sure we don't do grpc_shutdown() before destroying the server handle.
+            // Doing so would make object finalizer crash if we end up abandoning the handle.
+            GrpcEnvironment.GrpcNativeInit();
             return grpcsharp_secure_channel_create(credentials, target, channelArgs);
         }
 
@@ -107,6 +113,7 @@ namespace Grpc.Core.Internal
         protected override bool ReleaseHandle()
         {
             grpcsharp_channel_destroy(handle);
+            GrpcEnvironment.GrpcNativeShutdown();
             return true;
         }
     }
diff --git a/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs b/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs
index 6c445210381532135cebecc7d3c1792b3793a828..b4a7335c7ce65ca570313813dc674383dc28794d 100644
--- a/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs
+++ b/src/csharp/Grpc.Core/Internal/ClientResponseStream.cs
@@ -72,7 +72,13 @@ namespace Grpc.Core.Internal
             call.StartReadMessage(taskSource.CompletionDelegate);
             var result = await taskSource.Task;
             this.current = result;
-            return result != null;
+
+            if (result == null)
+            {
+                await call.StreamingCallFinishedTask;
+                return false;
+            }
+            return true;
         }
 
         public void Dispose()
diff --git a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs
index f64f3d4175fc4bf69d68fd961085204098955cff..f7a3471bb4b9d16ce7fbd293ab2bce8e57b8f2bc 100644
--- a/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CompletionQueueSafeHandle.cs
@@ -35,7 +35,7 @@ using System.Threading.Tasks;
 namespace Grpc.Core.Internal
 {
     /// <summary>
-    /// grpc_completion_queue from <grpc/grpc.h>
+    /// grpc_completion_queue from <c>grpc/grpc.h</c>
     /// </summary>
     internal class CompletionQueueSafeHandle : SafeHandleZeroIsInvalid
     {
diff --git a/src/csharp/Grpc.Core/Internal/CredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/CredentialsSafeHandle.cs
index 8b4fa85e5db38b9912ac0849990571555b401cde..feed33536246720f578c66223165c44752dc36b9 100644
--- a/src/csharp/Grpc.Core/Internal/CredentialsSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/CredentialsSafeHandle.cs
@@ -36,7 +36,7 @@ using System.Threading.Tasks;
 namespace Grpc.Core.Internal
 {
     /// <summary>
-    /// grpc_credentials from <grpc/grpc_security.h>
+    /// grpc_credentials from <c>grpc/grpc_security.h</c>
     /// </summary>
     internal class CredentialsSafeHandle : SafeHandleZeroIsInvalid
     {
diff --git a/src/csharp/Grpc.Core/Internal/DebugStats.cs b/src/csharp/Grpc.Core/Internal/DebugStats.cs
index 8793450ff3629c988b9621dab133597d449d5fda..1bea1adf9e3e5ed84191fe456182c9c16be2fad2 100644
--- a/src/csharp/Grpc.Core/Internal/DebugStats.cs
+++ b/src/csharp/Grpc.Core/Internal/DebugStats.cs
@@ -38,10 +38,6 @@ namespace Grpc.Core.Internal
 {
     internal class DebugStats
     {
-        public readonly AtomicCounter ActiveClientCalls = new AtomicCounter();
-
-        public readonly AtomicCounter ActiveServerCalls = new AtomicCounter();
-
         public readonly AtomicCounter PendingBatchCompletions = new AtomicCounter();
 
         /// <summary>
@@ -49,16 +45,6 @@ namespace Grpc.Core.Internal
         /// </summary>
         public void CheckOK()
         {
-            var remainingClientCalls = ActiveClientCalls.Count;
-            if (remainingClientCalls != 0)
-            {                
-                DebugWarning(string.Format("Detected {0} client calls that weren't disposed properly.", remainingClientCalls));
-            }
-            var remainingServerCalls = ActiveServerCalls.Count;
-            if (remainingServerCalls != 0)
-            {
-                DebugWarning(string.Format("Detected {0} server calls that weren't disposed properly.", remainingServerCalls));
-            }
             var pendingBatchCompletions = PendingBatchCompletions.Count;
             if (pendingBatchCompletions != 0)
             {
diff --git a/src/csharp/Grpc.Core/Internal/GrpcThreadPool.cs b/src/csharp/Grpc.Core/Internal/GrpcThreadPool.cs
index cb4c7c821e728036a7e6c47730de588e1113b68c..4b7124ee749169bfab8dc5c6fdca9ba44b3a80d7 100644
--- a/src/csharp/Grpc.Core/Internal/GrpcThreadPool.cs
+++ b/src/csharp/Grpc.Core/Internal/GrpcThreadPool.cs
@@ -83,8 +83,6 @@ namespace Grpc.Core.Internal
             lock (myLock)
             {
                 cq.Shutdown();
-
-                Logger.Info("Waiting for GRPC threads to finish.");
                 foreach (var thread in threads)
                 {
                     thread.Join();
@@ -136,7 +134,6 @@ namespace Grpc.Core.Internal
                 }
             }
             while (ev.type != GRPCCompletionType.Shutdown);
-            Logger.Info("Completion queue has shutdown successfully, thread {0} exiting.", Thread.CurrentThread.Name);
         }
     }
 }
diff --git a/src/csharp/Grpc.Core/Internal/INativeCall.cs b/src/csharp/Grpc.Core/Internal/INativeCall.cs
new file mode 100644
index 0000000000000000000000000000000000000000..cbef5991396e41d2825d5b65f9ce70df435bbe1e
--- /dev/null
+++ b/src/csharp/Grpc.Core/Internal/INativeCall.cs
@@ -0,0 +1,85 @@
+#region Copyright notice and license
+// Copyright 2015, Google Inc.
+// All rights reserved.
+// 
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+// 
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+// 
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+#endregion
+
+using System;
+
+namespace Grpc.Core.Internal
+{
+    internal delegate void UnaryResponseClientHandler(bool success, ClientSideStatus receivedStatus, byte[] receivedMessage, Metadata responseHeaders);
+
+    // Received status for streaming response calls.
+    internal delegate void ReceivedStatusOnClientHandler(bool success, ClientSideStatus receivedStatus);
+
+    internal delegate void ReceivedMessageHandler(bool success, byte[] receivedMessage);
+
+    internal delegate void ReceivedResponseHeadersHandler(bool success, Metadata responseHeaders);
+
+    internal delegate void SendCompletionHandler(bool success);
+
+    internal delegate void ReceivedCloseOnServerHandler(bool success, bool cancelled);
+
+    /// <summary>
+    /// Abstraction of a native call object.
+    /// </summary>
+    internal interface INativeCall : IDisposable
+    {
+        void Cancel();
+
+        void CancelWithStatus(Grpc.Core.Status status);
+
+        string GetPeer();
+
+        void StartUnary(UnaryResponseClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, Grpc.Core.WriteFlags writeFlags);
+
+        void StartUnary(BatchContextSafeHandle ctx, byte[] payload, MetadataArraySafeHandle metadataArray, Grpc.Core.WriteFlags writeFlags);
+
+        void StartClientStreaming(UnaryResponseClientHandler callback, MetadataArraySafeHandle metadataArray);
+
+        void StartServerStreaming(ReceivedStatusOnClientHandler callback, byte[] payload, MetadataArraySafeHandle metadataArray, Grpc.Core.WriteFlags writeFlags);
+
+        void StartDuplexStreaming(ReceivedStatusOnClientHandler callback, MetadataArraySafeHandle metadataArray);
+
+        void StartReceiveMessage(ReceivedMessageHandler callback);
+
+        void StartReceiveInitialMetadata(ReceivedResponseHeadersHandler callback);
+
+        void StartSendInitialMetadata(SendCompletionHandler callback, MetadataArraySafeHandle metadataArray);
+
+        void StartSendMessage(SendCompletionHandler callback, byte[] payload, Grpc.Core.WriteFlags writeFlags, bool sendEmptyInitialMetadata);
+
+        void StartSendCloseFromClient(SendCompletionHandler callback);
+
+        void StartSendStatusFromServer(SendCompletionHandler callback, Grpc.Core.Status status, MetadataArraySafeHandle metadataArray, bool sendEmptyInitialMetadata);
+
+        void StartServerSide(ReceivedCloseOnServerHandler callback);
+    }
+}
diff --git a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs
index 427c16fac60bc4066d611bb08efb254d3acd8c98..31b834c979ae38b67177a61ef8b6d7b5bb1dffde 100644
--- a/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/MetadataArraySafeHandle.cs
@@ -35,7 +35,7 @@ using System.Threading.Tasks;
 namespace Grpc.Core.Internal
 {
     /// <summary>
-    /// grpc_metadata_array from <grpc/grpc.h>
+    /// grpc_metadata_array from <c>grpc/grpc.h</c>
     /// </summary>
     internal class MetadataArraySafeHandle : SafeHandleZeroIsInvalid
     {
@@ -70,7 +70,8 @@ namespace Grpc.Core.Internal
             var metadataArray = grpcsharp_metadata_array_create(new UIntPtr((ulong)metadata.Count));
             for (int i = 0; i < metadata.Count; i++)
             {
-                grpcsharp_metadata_array_add(metadataArray, metadata[i].Key, metadata[i].ValueBytes, new UIntPtr((ulong)metadata[i].ValueBytes.Length));
+                var valueBytes = metadata[i].GetSerializedValueUnsafe();
+                grpcsharp_metadata_array_add(metadataArray, metadata[i].Key, valueBytes, new UIntPtr((ulong)valueBytes.Length));
             }
             return metadataArray;
         }
@@ -94,7 +95,7 @@ namespace Grpc.Core.Internal
                 string key = Marshal.PtrToStringAnsi(grpcsharp_metadata_array_get_key(metadataArray, index));
                 var bytes = new byte[grpcsharp_metadata_array_get_value_length(metadataArray, index).ToUInt64()];
                 Marshal.Copy(grpcsharp_metadata_array_get_value(metadataArray, index), bytes, 0, bytes.Length);
-                metadata.Add(new Metadata.Entry(key, bytes));
+                metadata.Add(Metadata.Entry.CreateUnsafe(key, bytes));
             }
             return metadata;
         }
diff --git a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
index 688f9f6fec5493d454a755b906cf7976f87a1220..59f4c5727c58f0170386a64859ef66ab4dd36b21 100644
--- a/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerCallHandler.cs
@@ -67,7 +67,7 @@ namespace Grpc.Core.Internal
             var asyncCall = new AsyncCallServer<TRequest, TResponse>(
                 method.ResponseMarshaller.Serializer,
                 method.RequestMarshaller.Deserializer,
-                environment);
+                environment, newRpc.Server);
 
             asyncCall.Initialize(newRpc.Call);
             var finishedTask = asyncCall.ServerSideCallAsync();
@@ -123,7 +123,7 @@ namespace Grpc.Core.Internal
             var asyncCall = new AsyncCallServer<TRequest, TResponse>(
                 method.ResponseMarshaller.Serializer,
                 method.RequestMarshaller.Deserializer,
-                environment);
+                environment, newRpc.Server);
 
             asyncCall.Initialize(newRpc.Call);
             var finishedTask = asyncCall.ServerSideCallAsync();
@@ -179,7 +179,7 @@ namespace Grpc.Core.Internal
             var asyncCall = new AsyncCallServer<TRequest, TResponse>(
                 method.ResponseMarshaller.Serializer,
                 method.RequestMarshaller.Deserializer,
-                environment);
+                environment, newRpc.Server);
 
             asyncCall.Initialize(newRpc.Call);
             var finishedTask = asyncCall.ServerSideCallAsync();
@@ -239,7 +239,7 @@ namespace Grpc.Core.Internal
             var asyncCall = new AsyncCallServer<TRequest, TResponse>(
                 method.ResponseMarshaller.Serializer,
                 method.RequestMarshaller.Deserializer,
-                environment);
+                environment, newRpc.Server);
 
             asyncCall.Initialize(newRpc.Call);
             var finishedTask = asyncCall.ServerSideCallAsync();
@@ -278,7 +278,7 @@ namespace Grpc.Core.Internal
         {
             // We don't care about the payload type here.
             var asyncCall = new AsyncCallServer<byte[], byte[]>(
-                (payload) => payload, (payload) => payload, environment);
+                (payload) => payload, (payload) => payload, environment, newRpc.Server);
             
             asyncCall.Initialize(newRpc.Call);
             var finishedTask = asyncCall.ServerSideCallAsync();
diff --git a/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs
index 37a4f5256bfe61546d65fd62de24aa9b3207a5c8..51e352a18ba0e38ec76929118aad8715a96bec75 100644
--- a/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerCredentialsSafeHandle.cs
@@ -37,7 +37,7 @@ using Grpc.Core.Utils;
 namespace Grpc.Core.Internal
 {
     /// <summary>
-    /// grpc_server_credentials from <grpc/grpc_security.h>
+    /// grpc_server_credentials from <c>grpc/grpc_security.h</c>
     /// </summary>
     internal class ServerCredentialsSafeHandle : SafeHandleZeroIsInvalid
     {
diff --git a/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs b/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs
index f9b44b1acfb60467b4f2d7dcc91bbced470ff2f0..5ee7ac14e8faf026278d715298a0b6e134181470 100644
--- a/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs
+++ b/src/csharp/Grpc.Core/Internal/ServerSafeHandle.cs
@@ -74,6 +74,9 @@ namespace Grpc.Core.Internal
 
         public static ServerSafeHandle NewServer(CompletionQueueSafeHandle cq, ChannelArgsSafeHandle args)
         {
+            // Increment reference count for the native gRPC environment to make sure we don't do grpc_shutdown() before destroying the server handle.
+            // Doing so would make object finalizer crash if we end up abandoning the handle.
+            GrpcEnvironment.GrpcNativeInit();
             return grpcsharp_server_create(cq, args);
         }
 
@@ -109,6 +112,7 @@ namespace Grpc.Core.Internal
         protected override bool ReleaseHandle()
         {
             grpcsharp_server_destroy(handle);
+            GrpcEnvironment.GrpcNativeShutdown();
             return true;
         }
             
diff --git a/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs b/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs
index 382481d8716294d3c531b23444c0fac8cf196f38..35561d25d8a566c26772c8c57d3ce7d8cb6f930f 100644
--- a/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs
+++ b/src/csharp/Grpc.Core/Logging/ConsoleLogger.cs
@@ -51,7 +51,19 @@ namespace Grpc.Core.Logging
         private ConsoleLogger(Type forType)
         {
             this.forType = forType;
-            this.forTypeString = forType != null ? forType.FullName + " " : "";
+            if (forType != null)
+            {
+                var namespaceStr = forType.Namespace ?? "";
+                if (namespaceStr.Length > 0)
+                {
+                     namespaceStr += ".";
+                }
+                this.forTypeString = namespaceStr + forType.Name + " ";
+            }
+            else
+            {
+                this.forTypeString = "";
+            }
         }
  
         /// <summary>
diff --git a/src/csharp/Grpc.Core/Metadata.cs b/src/csharp/Grpc.Core/Metadata.cs
index 9db2abf46ef8f7eae14ee908d2014611c666a151..99fe0b5478a2e1abfdf55beea28679d61401a5be 100644
--- a/src/csharp/Grpc.Core/Metadata.cs
+++ b/src/csharp/Grpc.Core/Metadata.cs
@@ -41,10 +41,21 @@ using Grpc.Core.Utils;
 namespace Grpc.Core
 {
     /// <summary>
-    /// Provides access to read and write metadata values to be exchanged during a call.
+    /// A collection of metadata entries that can be exchanged during a call.
+    /// gRPC supports these types of metadata:
+    /// <list type="bullet">
+    /// <item><term>Request headers</term><description>are sent by the client at the beginning of a remote call before any request messages are sent.</description></item>
+    /// <item><term>Response headers</term><description>are sent by the server at the beginning of a remote call handler before any response messages are sent.</description></item>
+    /// <item><term>Response trailers</term><description>are sent by the server at the end of a remote call along with resulting call status.</description></item>
+    /// </list>
     /// </summary>
     public sealed class Metadata : IList<Metadata.Entry>
     {
+        /// <summary>
+        /// All binary headers should have this suffix.
+        /// </summary>
+        public const string BinaryHeaderSuffix = "-bin";
+
         /// <summary>
         /// An read-only instance of metadata containing no entries.
         /// </summary>
@@ -53,21 +64,19 @@ namespace Grpc.Core
         readonly List<Entry> entries;
         bool readOnly;
 
+        /// <summary>
+        /// Initializes a new instance of <c>Metadata</c>.
+        /// </summary>
         public Metadata()
         {
             this.entries = new List<Entry>();
         }
 
-        public Metadata(ICollection<Entry> entries)
-        {
-            this.entries = new List<Entry>(entries);
-        }
-
         /// <summary>
         /// Makes this object read-only.
         /// </summary>
         /// <returns>this object</returns>
-        public Metadata Freeze()
+        internal Metadata Freeze()
         {
             this.readOnly = true;
             return this;
@@ -181,23 +190,49 @@ namespace Grpc.Core
             private static readonly Encoding Encoding = Encoding.ASCII;
 
             readonly string key;
-            string value;
-            byte[] valueBytes;
+            readonly string value;
+            readonly byte[] valueBytes;
+
+            private Entry(string key, string value, byte[] valueBytes)
+            {
+                this.key = key;
+                this.value = value;
+                this.valueBytes = valueBytes;
+            }
 
+            /// <summary>
+            /// Initializes a new instance of the <see cref="Grpc.Core.Metadata.Entry"/> struct with a binary value.
+            /// </summary>
+            /// <param name="key">Metadata key, needs to have suffix indicating a binary valued metadata entry.</param>
+            /// <param name="valueBytes">Value bytes.</param>
             public Entry(string key, byte[] valueBytes)
             {
-                this.key = Preconditions.CheckNotNull(key, "key");
+                this.key = NormalizeKey(key);
+                Preconditions.CheckArgument(this.key.EndsWith(BinaryHeaderSuffix),
+                    "Key for binary valued metadata entry needs to have suffix indicating binary value.");
                 this.value = null;
-                this.valueBytes = Preconditions.CheckNotNull(valueBytes, "valueBytes");
+                Preconditions.CheckNotNull(valueBytes, "valueBytes");
+                this.valueBytes = new byte[valueBytes.Length];
+                Buffer.BlockCopy(valueBytes, 0, this.valueBytes, 0, valueBytes.Length);  // defensive copy to guarantee immutability
             }
 
+            /// <summary>
+            /// Initializes a new instance of the <see cref="Grpc.Core.Metadata.Entry"/> struct holding an ASCII value.
+            /// </summary>
+            /// <param name="key">Metadata key, must not use suffix indicating a binary valued metadata entry.</param>
+            /// <param name="value">Value string. Only ASCII characters are allowed.</param>
             public Entry(string key, string value)
             {
-                this.key = Preconditions.CheckNotNull(key, "key");
+                this.key = NormalizeKey(key);
+                Preconditions.CheckArgument(!this.key.EndsWith(BinaryHeaderSuffix),
+                    "Key for ASCII valued metadata entry cannot have suffix indicating binary value.");
                 this.value = Preconditions.CheckNotNull(value, "value");
                 this.valueBytes = null;
             }
 
+            /// <summary>
+            /// Gets the metadata entry key.
+            /// </summary>
             public string Key
             {
                 get
@@ -206,33 +241,86 @@ namespace Grpc.Core
                 }
             }
 
+            /// <summary>
+            /// Gets the binary value of this metadata entry.
+            /// </summary>
             public byte[] ValueBytes
             {
                 get
                 {
                     if (valueBytes == null)
                     {
-                        valueBytes = Encoding.GetBytes(value);
+                        return Encoding.GetBytes(value);
                     }
-                    return valueBytes;
+
+                    // defensive copy to guarantee immutability
+                    var bytes = new byte[valueBytes.Length];
+                    Buffer.BlockCopy(valueBytes, 0, bytes, 0, valueBytes.Length);
+                    return bytes;
                 }
             }
 
+            /// <summary>
+            /// Gets the string value of this metadata entry.
+            /// </summary>
             public string Value
             {
                 get
                 {
-                    if (value == null)
-                    {
-                        value = Encoding.GetString(valueBytes);
-                    }
-                    return value;
+                    Preconditions.CheckState(!IsBinary, "Cannot access string value of a binary metadata entry");
+                    return value ?? Encoding.GetString(valueBytes);
                 }
             }
-                
+
+            /// <summary>
+            /// Returns <c>true</c> if this entry is a binary-value entry.
+            /// </summary>
+            public bool IsBinary
+            {
+                get
+                {
+                    return value == null;
+                }
+            }
+
+            /// <summary>
+            /// Returns a <see cref="System.String"/> that represents the current <see cref="Grpc.Core.Metadata.Entry"/>.
+            /// </summary>
             public override string ToString()
             {
-                return string.Format("[Entry: key={0}, value={1}]", Key, Value);
+                if (IsBinary)
+                {
+                    return string.Format("[Entry: key={0}, valueBytes={1}]", key, valueBytes);
+                }
+                
+                return string.Format("[Entry: key={0}, value={1}]", key, value);
+            }
+
+            /// <summary>
+            /// Gets the serialized value for this entry. For binary metadata entries, this leaks
+            /// the internal <c>valueBytes</c> byte array and caller must not change contents of it.
+            /// </summary>
+            internal byte[] GetSerializedValueUnsafe()
+            {
+                return valueBytes ?? Encoding.GetBytes(value);
+            }
+
+            /// <summary>
+            /// Creates a binary value or ascii value metadata entry from data received from the native layer.
+            /// We trust C core to give us well-formed data, so we don't perform any checks or defensive copying.
+            /// </summary>
+            internal static Entry CreateUnsafe(string key, byte[] valueBytes)
+            {
+                if (key.EndsWith(BinaryHeaderSuffix))
+                {
+                    return new Entry(key, null, valueBytes);
+                }
+                return new Entry(key, Encoding.GetString(valueBytes), null);
+            }
+
+            private static string NormalizeKey(string key)
+            {
+                return Preconditions.CheckNotNull(key, "key").ToLower();
             }
         }
     }
diff --git a/src/csharp/Grpc.Core/Method.cs b/src/csharp/Grpc.Core/Method.cs
index 4c208b4a263068b52529238a816781263b913267..99162a7d5dd065fa3a89b955836a3cfbcc1c00ce 100644
--- a/src/csharp/Grpc.Core/Method.cs
+++ b/src/csharp/Grpc.Core/Method.cs
@@ -54,10 +54,39 @@ namespace Grpc.Core
         DuplexStreaming
     }
 
+    /// <summary>
+    /// A non-generic representation of a remote method.
+    /// </summary>
+    public interface IMethod
+    {
+        /// <summary>
+        /// Gets the type of the method.
+        /// </summary>
+        MethodType Type { get; }
+
+        /// <summary>
+        /// Gets the name of the service to which this method belongs.
+        /// </summary>
+        string ServiceName { get; }
+
+        /// <summary>
+        /// Gets the unqualified name of the method.
+        /// </summary>
+        string Name { get; }
+
+        /// <summary>
+        /// Gets the fully qualified name of the method. On the server side, methods are dispatched
+        /// based on this name.
+        /// </summary>
+        string FullName { get; }
+    }
+
     /// <summary>
     /// A description of a remote method.
     /// </summary>
-    public class Method<TRequest, TResponse>
+    /// <typeparam name="TRequest">Request message type for this method.</typeparam>
+    /// <typeparam name="TResponse">Response message type for this method.</typeparam>
+    public class Method<TRequest, TResponse> : IMethod
     {
         readonly MethodType type;
         readonly string serviceName;
diff --git a/src/csharp/Grpc.Core/Server.cs b/src/csharp/Grpc.Core/Server.cs
index c76f126026f16370c164a98305e23eab72c50a33..7c94d215618cbca67d081246ba7617086e4788e9 100644
--- a/src/csharp/Grpc.Core/Server.cs
+++ b/src/csharp/Grpc.Core/Server.cs
@@ -44,12 +44,14 @@ using Grpc.Core.Utils;
 namespace Grpc.Core
 {
     /// <summary>
-    /// A gRPC server.
+    /// gRPC server. A single server can server arbitrary number of services and can listen on more than one ports.
     /// </summary>
     public class Server
     {
         static readonly ILogger Logger = GrpcEnvironment.Logger.ForType<Server>();
 
+        readonly AtomicCounter activeCallCounter = new AtomicCounter();
+
         readonly ServiceDefinitionCollection serviceDefinitions;
         readonly ServerPortCollection ports;
         readonly GrpcEnvironment environment;
@@ -73,7 +75,7 @@ namespace Grpc.Core
         {
             this.serviceDefinitions = new ServiceDefinitionCollection(this);
             this.ports = new ServerPortCollection(this);
-            this.environment = GrpcEnvironment.GetInstance();
+            this.environment = GrpcEnvironment.AddRef();
             this.options = options != null ? new List<ChannelOption>(options) : new List<ChannelOption>();
             using (var channelArgs = ChannelOptions.CreateChannelArgs(this.options))
             {
@@ -105,6 +107,17 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// To allow awaiting termination of the server.
+        /// </summary>
+        public Task ShutdownTask
+        {
+            get
+            {
+                return shutdownTcs.Task;
+            }
+        }
+
         /// <summary>
         /// Starts the server.
         /// </summary>
@@ -136,18 +149,9 @@ namespace Grpc.Core
 
             handle.ShutdownAndNotify(HandleServerShutdown, environment);
             await shutdownTcs.Task;
-            handle.Dispose();
-        }
+            DisposeHandle();
 
-        /// <summary>
-        /// To allow awaiting termination of the server.
-        /// </summary>
-        public Task ShutdownTask
-        {
-            get
-            {
-                return shutdownTcs.Task;
-            }
+            await Task.Run(() => GrpcEnvironment.Release());
         }
 
         /// <summary>
@@ -166,7 +170,22 @@ namespace Grpc.Core
             handle.ShutdownAndNotify(HandleServerShutdown, environment);
             handle.CancelAllCalls();
             await shutdownTcs.Task;
-            handle.Dispose();
+            DisposeHandle();
+        }
+
+        internal void AddCallReference(object call)
+        {
+            activeCallCounter.Increment();
+
+            bool success = false;
+            handle.DangerousAddRef(ref success);
+            Preconditions.CheckState(success);
+        }
+
+        internal void RemoveCallReference(object call)
+        {
+            handle.DangerousRelease();
+            activeCallCounter.Decrement();
         }
 
         /// <summary>
@@ -227,6 +246,16 @@ namespace Grpc.Core
             }
         }
 
+        private void DisposeHandle()
+        {
+            var activeCallCount = activeCallCounter.Count;
+            if (activeCallCount > 0)
+            {
+                Logger.Warning("Server shutdown has finished but there are still {0} active calls for that server.", activeCallCount);
+            }
+            handle.Dispose();
+        }
+
         /// <summary>
         /// Selects corresponding handler for given call and handles the call.
         /// </summary>
@@ -254,7 +283,7 @@ namespace Grpc.Core
         {
             if (success)
             {
-                ServerRpcNew newRpc = ctx.GetServerRpcNew();
+                ServerRpcNew newRpc = ctx.GetServerRpcNew(this);
 
                 // after server shutdown, the callback returns with null call
                 if (!newRpc.Call.IsInvalid)
@@ -295,6 +324,9 @@ namespace Grpc.Core
                 server.AddServiceDefinitionInternal(serviceDefinition);
             }
 
+            /// <summary>
+            /// Gets enumerator for this collection.
+            /// </summary>
             public IEnumerator<ServerServiceDefinition> GetEnumerator()
             {
                 return server.serviceDefinitionsList.GetEnumerator();
@@ -340,6 +372,9 @@ namespace Grpc.Core
                 return Add(new ServerPort(host, port, credentials));
             }
 
+            /// <summary>
+            /// Gets enumerator for this collection.
+            /// </summary>
             public IEnumerator<ServerPort> GetEnumerator()
             {
                 return server.serverPortList.GetEnumerator();
diff --git a/src/csharp/Grpc.Core/ServerCallContext.cs b/src/csharp/Grpc.Core/ServerCallContext.cs
index 75d81c64f3a57a51acb5f1ef3fe3cfbbcc3eab70..09a6b882a6266e46cd3c4e30c3d97309f2cba9f3 100644
--- a/src/csharp/Grpc.Core/ServerCallContext.cs
+++ b/src/csharp/Grpc.Core/ServerCallContext.cs
@@ -72,6 +72,13 @@ namespace Grpc.Core
             this.writeOptionsHolder = writeOptionsHolder;
         }
 
+        /// <summary>
+        /// Asynchronously sends response headers for the current call to the client. This method may only be invoked once for each call and needs to be invoked
+        /// before any response messages are written. Writing the first response message implicitly sends empty response headers if <c>WriteResponseHeadersAsync</c> haven't
+        /// been called yet.
+        /// </summary>
+        /// <param name="responseHeaders">The response headers to send.</param>
+        /// <returns>The task that finished once response headers have been written.</returns>
         public Task WriteResponseHeadersAsync(Metadata responseHeaders)
         {
             return writeHeadersFunc(responseHeaders);
@@ -186,6 +193,9 @@ namespace Grpc.Core
     /// </summary>
     public interface IHasWriteOptions
     {
+        /// <summary>
+        /// Gets or sets the write options.
+        /// </summary>
         WriteOptions WriteOptions { get; set; }
     }
 }
diff --git a/src/csharp/Grpc.Core/ServerMethods.cs b/src/csharp/Grpc.Core/ServerMethods.cs
index 1f119a80ffe243737147f7c97300ea78eebeb7ff..728f77cde57a9c6c914d66e6c84300ec4cd8a0fa 100644
--- a/src/csharp/Grpc.Core/ServerMethods.cs
+++ b/src/csharp/Grpc.Core/ServerMethods.cs
@@ -38,6 +38,8 @@ namespace Grpc.Core
     /// <summary>
     /// Server-side handler for unary call.
     /// </summary>
+    /// <typeparam name="TRequest">Request message type for this method.</typeparam>
+    /// <typeparam name="TResponse">Response message type for this method.</typeparam>
     public delegate Task<TResponse> UnaryServerMethod<TRequest, TResponse>(TRequest request, ServerCallContext context)
         where TRequest : class
         where TResponse : class;
@@ -45,6 +47,8 @@ namespace Grpc.Core
     /// <summary>
     /// Server-side handler for client streaming call.
     /// </summary>
+    /// <typeparam name="TRequest">Request message type for this method.</typeparam>
+    /// <typeparam name="TResponse">Response message type for this method.</typeparam>
     public delegate Task<TResponse> ClientStreamingServerMethod<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, ServerCallContext context)
         where TRequest : class
         where TResponse : class;
@@ -52,6 +56,8 @@ namespace Grpc.Core
     /// <summary>
     /// Server-side handler for server streaming call.
     /// </summary>
+    /// <typeparam name="TRequest">Request message type for this method.</typeparam>
+    /// <typeparam name="TResponse">Response message type for this method.</typeparam>
     public delegate Task ServerStreamingServerMethod<TRequest, TResponse>(TRequest request, IServerStreamWriter<TResponse> responseStream, ServerCallContext context)
         where TRequest : class
         where TResponse : class;
@@ -59,6 +65,8 @@ namespace Grpc.Core
     /// <summary>
     /// Server-side handler for bidi streaming call.
     /// </summary>
+    /// <typeparam name="TRequest">Request message type for this method.</typeparam>
+    /// <typeparam name="TResponse">Response message type for this method.</typeparam>
     public delegate Task DuplexStreamingServerMethod<TRequest, TResponse>(IAsyncStreamReader<TRequest> requestStream, IServerStreamWriter<TResponse> responseStream, ServerCallContext context)
         where TRequest : class
         where TResponse : class;
diff --git a/src/csharp/Grpc.Core/ServerServiceDefinition.cs b/src/csharp/Grpc.Core/ServerServiceDefinition.cs
index 94b0a320c3006a8419a67f566bf6dd31ac29df74..deb1431ca36f6749d51e09237d3b661ff3d7eecf 100644
--- a/src/csharp/Grpc.Core/ServerServiceDefinition.cs
+++ b/src/csharp/Grpc.Core/ServerServiceDefinition.cs
@@ -40,6 +40,8 @@ namespace Grpc.Core
 {
     /// <summary>
     /// Mapping of method names to server call handlers.
+    /// Normally, the <c>ServerServiceDefinition</c> objects will be created by the <c>BindService</c> factory method 
+    /// that is part of the autogenerated code for a protocol buffers service definition.
     /// </summary>
     public class ServerServiceDefinition
     {
@@ -58,21 +60,41 @@ namespace Grpc.Core
             }
         }
 
+        /// <summary>
+        /// Creates a new builder object for <c>ServerServiceDefinition</c>.
+        /// </summary>
+        /// <param name="serviceName">The service name.</param>
+        /// <returns>The builder object.</returns>
         public static Builder CreateBuilder(string serviceName)
         {
             return new Builder(serviceName);
         }
 
+        /// <summary>
+        /// Builder class for <see cref="ServerServiceDefinition"/>.
+        /// </summary>
         public class Builder
         {
             readonly string serviceName;
             readonly Dictionary<string, IServerCallHandler> callHandlers = new Dictionary<string, IServerCallHandler>();
 
+            /// <summary>
+            /// Creates a new instance of builder.
+            /// </summary>
+            /// <param name="serviceName">The service name.</param>
             public Builder(string serviceName)
             {
                 this.serviceName = serviceName;
             }
 
+            /// <summary>
+            /// Adds a definitions for a single request - single response method.
+            /// </summary>
+            /// <typeparam name="TRequest">The request message class.</typeparam>
+            /// <typeparam name="TResponse">The response message class.</typeparam>
+            /// <param name="method">The method.</param>
+            /// <param name="handler">The method handler.</param>
+            /// <returns>This builder instance.</returns>
             public Builder AddMethod<TRequest, TResponse>(
                 Method<TRequest, TResponse> method,
                 UnaryServerMethod<TRequest, TResponse> handler)
@@ -83,6 +105,14 @@ namespace Grpc.Core
                 return this;
             }
 
+            /// <summary>
+            /// Adds a definitions for a client streaming method.
+            /// </summary>
+            /// <typeparam name="TRequest">The request message class.</typeparam>
+            /// <typeparam name="TResponse">The response message class.</typeparam>
+            /// <param name="method">The method.</param>
+            /// <param name="handler">The method handler.</param>
+            /// <returns>This builder instance.</returns>
             public Builder AddMethod<TRequest, TResponse>(
                 Method<TRequest, TResponse> method,
                 ClientStreamingServerMethod<TRequest, TResponse> handler)
@@ -93,6 +123,14 @@ namespace Grpc.Core
                 return this;
             }
 
+            /// <summary>
+            /// Adds a definitions for a server streaming method.
+            /// </summary>
+            /// <typeparam name="TRequest">The request message class.</typeparam>
+            /// <typeparam name="TResponse">The response message class.</typeparam>
+            /// <param name="method">The method.</param>
+            /// <param name="handler">The method handler.</param>
+            /// <returns>This builder instance.</returns>
             public Builder AddMethod<TRequest, TResponse>(
                 Method<TRequest, TResponse> method,
                 ServerStreamingServerMethod<TRequest, TResponse> handler)
@@ -103,6 +141,14 @@ namespace Grpc.Core
                 return this;
             }
 
+            /// <summary>
+            /// Adds a definitions for a bidirectional streaming method.
+            /// </summary>
+            /// <typeparam name="TRequest">The request message class.</typeparam>
+            /// <typeparam name="TResponse">The response message class.</typeparam>
+            /// <param name="method">The method.</param>
+            /// <param name="handler">The method handler.</param>
+            /// <returns>This builder instance.</returns>
             public Builder AddMethod<TRequest, TResponse>(
                 Method<TRequest, TResponse> method,
                 DuplexStreamingServerMethod<TRequest, TResponse> handler)
@@ -113,6 +159,10 @@ namespace Grpc.Core
                 return this;
             }
 
+            /// <summary>
+            /// Creates an immutable <c>ServerServiceDefinition</c> from this builder.
+            /// </summary>
+            /// <returns>The <c>ServerServiceDefinition</c> object.</returns>
             public ServerServiceDefinition Build()
             {
                 return new ServerServiceDefinition(callHandlers);
diff --git a/src/csharp/Grpc.Core/Utils/Preconditions.cs b/src/csharp/Grpc.Core/Utils/Preconditions.cs
index 374262f87ad5e2cdd870826af49e2fcfddd00e60..a8ab603391fc8dd59b2751fc4782ffa091d2625a 100644
--- a/src/csharp/Grpc.Core/Utils/Preconditions.cs
+++ b/src/csharp/Grpc.Core/Utils/Preconditions.cs
@@ -43,6 +43,7 @@ namespace Grpc.Core.Utils
         /// <summary>
         /// Throws <see cref="ArgumentException"/> if condition is false.
         /// </summary>
+        /// <param name="condition">The condition.</param>
         public static void CheckArgument(bool condition)
         {
             if (!condition)
@@ -54,6 +55,8 @@ namespace Grpc.Core.Utils
         /// <summary>
         /// Throws <see cref="ArgumentException"/> with given message if condition is false.
         /// </summary>
+        /// <param name="condition">The condition.</param>
+        /// <param name="errorMessage">The error message.</param>
         public static void CheckArgument(bool condition, string errorMessage)
         {
             if (!condition)
@@ -65,6 +68,7 @@ namespace Grpc.Core.Utils
         /// <summary>
         /// Throws <see cref="ArgumentNullException"/> if reference is null.
         /// </summary>
+        /// <param name="reference">The reference.</param>
         public static T CheckNotNull<T>(T reference)
         {
             if (reference == null)
@@ -77,6 +81,8 @@ namespace Grpc.Core.Utils
         /// <summary>
         /// Throws <see cref="ArgumentNullException"/> if reference is null.
         /// </summary>
+        /// <param name="reference">The reference.</param>
+        /// <param name="paramName">The parameter name.</param>
         public static T CheckNotNull<T>(T reference, string paramName)
         {
             if (reference == null)
@@ -89,6 +95,7 @@ namespace Grpc.Core.Utils
         /// <summary>
         /// Throws <see cref="InvalidOperationException"/> if condition is false.
         /// </summary>
+        /// <param name="condition">The condition.</param>
         public static void CheckState(bool condition)
         {
             if (!condition)
@@ -100,6 +107,8 @@ namespace Grpc.Core.Utils
         /// <summary>
         /// Throws <see cref="InvalidOperationException"/> with given message if condition is false.
         /// </summary>
+        /// <param name="condition">The condition.</param>
+        /// <param name="errorMessage">The error message.</param>
         public static void CheckState(bool condition, string errorMessage)
         {
             if (!condition)
diff --git a/src/csharp/Grpc.Core/WriteOptions.cs b/src/csharp/Grpc.Core/WriteOptions.cs
index 7ef3189d7629213a52e494331ad7c95432138808..7523ada84a8ee33b1af4a6e1bcd82ce9069a7083 100644
--- a/src/csharp/Grpc.Core/WriteOptions.cs
+++ b/src/csharp/Grpc.Core/WriteOptions.cs
@@ -66,11 +66,18 @@ namespace Grpc.Core
             
         private WriteFlags flags;
 
+        /// <summary>
+        /// Initializes a new instance of <c>WriteOptions</c> class.
+        /// </summary>
+        /// <param name="flags">The write flags.</param>
         public WriteOptions(WriteFlags flags = default(WriteFlags))
         {
             this.flags = flags;
         }
 
+        /// <summary>
+        /// Gets the write flags.
+        /// </summary>
         public WriteFlags Flags
         {
             get
diff --git a/src/csharp/Grpc.Examples.MathClient/MathClient.cs b/src/csharp/Grpc.Examples.MathClient/MathClient.cs
index f9839d99f1d9bb8e2592e37efeaee323a76a8d54..abd95cb905ec7db601382c605741e68252d196ce 100644
--- a/src/csharp/Grpc.Examples.MathClient/MathClient.cs
+++ b/src/csharp/Grpc.Examples.MathClient/MathClient.cs
@@ -39,23 +39,21 @@ namespace math
     {
         public static void Main(string[] args)
         {
-            using (Channel channel = new Channel("127.0.0.1", 23456, Credentials.Insecure))
-            {
-                Math.IMathClient client = new Math.MathClient(channel);
-                MathExamples.DivExample(client);
+            var channel = new Channel("127.0.0.1", 23456, Credentials.Insecure);
+            Math.IMathClient client = new Math.MathClient(channel);
+            MathExamples.DivExample(client);
 
-                MathExamples.DivAsyncExample(client).Wait();
+            MathExamples.DivAsyncExample(client).Wait();
 
-                MathExamples.FibExample(client).Wait();
+            MathExamples.FibExample(client).Wait();
 
-                MathExamples.SumExample(client).Wait();
+            MathExamples.SumExample(client).Wait();
 
-                MathExamples.DivManyExample(client).Wait();
+            MathExamples.DivManyExample(client).Wait();
 
-                MathExamples.DependendRequestsExample(client).Wait();
-            }
+            MathExamples.DependendRequestsExample(client).Wait();
 
-            GrpcEnvironment.Shutdown();
+            channel.ShutdownAsync().Wait();
         }
     }
 }
diff --git a/src/csharp/Grpc.Examples.MathServer/MathServer.cs b/src/csharp/Grpc.Examples.MathServer/MathServer.cs
index 5f7e717b0c800c6577d35c12368d655d929124fb..26bef646ec4cf2a899b7730feab01962d1f25f1e 100644
--- a/src/csharp/Grpc.Examples.MathServer/MathServer.cs
+++ b/src/csharp/Grpc.Examples.MathServer/MathServer.cs
@@ -56,7 +56,6 @@ namespace math
             Console.ReadKey();
 
             server.ShutdownAsync().Wait();
-            GrpcEnvironment.Shutdown();
         }
     }
 }
diff --git a/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs b/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
index fdef950f09d8d8ae596307b95a1d403ef6dc42c6..36c1c947bd0c399af9c4ce97cc1b507d99843b50 100644
--- a/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
+++ b/src/csharp/Grpc.Examples.Tests/MathClientServerTests.cs
@@ -68,9 +68,8 @@ namespace math.Tests
         [TestFixtureTearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
-            GrpcEnvironment.Shutdown();
         }
 
         [Test]
diff --git a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
index 024377e2162c8003b832451ad6a6a0dc4c45a917..80c35fb19772f28de0dd73576714d31fd17a9ece 100644
--- a/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
+++ b/src/csharp/Grpc.HealthCheck.Tests/HealthClientServerTest.cs
@@ -71,10 +71,9 @@ namespace Grpc.HealthCheck.Tests
         [TestFixtureTearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
 
             server.ShutdownAsync().Wait();
-            GrpcEnvironment.Shutdown();
         }
 
         [Test]
diff --git a/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs b/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
index 3c3b9c35f138fb650a36b248a9960d6c1883e2f8..8c04b43a86e4adbab28c6aa732b0da1f8b08b6ea 100644
--- a/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
+++ b/src/csharp/Grpc.HealthCheck/HealthServiceImpl.cs
@@ -95,6 +95,12 @@ namespace Grpc.HealthCheck
             }
         }
 
+        /// <summary>
+        /// Performs a health status check.
+        /// </summary>
+        /// <param name="request">The check request.</param>
+        /// <param name="context">The call context.</param>
+        /// <returns>The asynchronous response.</returns>
         public Task<HealthCheckResponse> Check(HealthCheckRequest request, ServerCallContext context)
         {
             lock (myLock)
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
index 385ca920862e62028bf3a8ee04dc3e2aa643d5d2..24c22273fb4f336ab84bb2645e647d6653be3600 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClient.cs
@@ -37,13 +37,15 @@ using System.Text.RegularExpressions;
 using System.Threading;
 using System.Threading.Tasks;
 
+using Google.Apis.Auth.OAuth2;
 using Google.ProtocolBuffers;
+
 using grpc.testing;
 using Grpc.Auth;
 using Grpc.Core;
 using Grpc.Core.Utils;
+
 using NUnit.Framework;
-using Google.Apis.Auth.OAuth2;
 
 namespace Grpc.IntegrationTesting
 {
@@ -118,12 +120,10 @@ namespace Grpc.IntegrationTesting
                 };
             }
 
-            using (Channel channel = new Channel(options.serverHost, options.serverPort.Value, credentials, channelOptions))
-            {
-                TestService.TestServiceClient client = new TestService.TestServiceClient(channel);
-                await RunTestCaseAsync(options.testCase, client);
-            }
-            GrpcEnvironment.Shutdown();
+            var channel = new Channel(options.serverHost, options.serverPort.Value, credentials, channelOptions);
+            TestService.TestServiceClient client = new TestService.TestServiceClient(channel);
+            await RunTestCaseAsync(options.testCase, client);
+            channel.ShutdownAsync().Wait();
         }
 
         private async Task RunTestCaseAsync(string testCase, TestService.TestServiceClient client)
@@ -169,6 +169,9 @@ namespace Grpc.IntegrationTesting
                 case "cancel_after_first_response":
                     await RunCancelAfterFirstResponseAsync(client);
                     break;
+                case "timeout_on_sleeping_server":
+                    await RunTimeoutOnSleepingServerAsync(client);
+                    break;
                 case "benchmark_empty_unary":
                     RunBenchmarkEmptyUnary(client);
                     break;
@@ -308,7 +311,7 @@ namespace Grpc.IntegrationTesting
             Console.WriteLine("running service_account_creds");
             var credential = await GoogleCredential.GetApplicationDefaultAsync();
             credential = credential.CreateScoped(new[] { AuthScope });
-            client.HeaderInterceptor = OAuth2Interceptors.FromCredential(credential);
+            client.HeaderInterceptor = AuthInterceptors.FromCredential(credential);
 
             var request = SimpleRequest.CreateBuilder()
                 .SetResponseType(PayloadType.COMPRESSABLE)
@@ -332,7 +335,7 @@ namespace Grpc.IntegrationTesting
             Console.WriteLine("running compute_engine_creds");
             var credential = await GoogleCredential.GetApplicationDefaultAsync();
             Assert.IsFalse(credential.IsCreateScopedRequired);
-            client.HeaderInterceptor = OAuth2Interceptors.FromCredential(credential);
+            client.HeaderInterceptor = AuthInterceptors.FromCredential(credential);
             
             var request = SimpleRequest.CreateBuilder()
                 .SetResponseType(PayloadType.COMPRESSABLE)
@@ -357,7 +360,7 @@ namespace Grpc.IntegrationTesting
             var credential = await GoogleCredential.GetApplicationDefaultAsync();
             // check this a credential with scope support, but don't add the scope.
             Assert.IsTrue(credential.IsCreateScopedRequired);
-            client.HeaderInterceptor = OAuth2Interceptors.FromCredential(credential);
+            client.HeaderInterceptor = AuthInterceptors.FromCredential(credential);
 
             var request = SimpleRequest.CreateBuilder()
                 .SetResponseType(PayloadType.COMPRESSABLE)
@@ -381,7 +384,7 @@ namespace Grpc.IntegrationTesting
             ITokenAccess credential = (await GoogleCredential.GetApplicationDefaultAsync()).CreateScoped(new[] { AuthScope });
             string oauth2Token = await credential.GetAccessTokenForRequestAsync();
 
-            client.HeaderInterceptor = OAuth2Interceptors.FromAccessToken(oauth2Token);
+            client.HeaderInterceptor = AuthInterceptors.FromAccessToken(oauth2Token);
 
             var request = SimpleRequest.CreateBuilder()
                 .SetFillUsername(true)
@@ -401,7 +404,7 @@ namespace Grpc.IntegrationTesting
 
             ITokenAccess credential = (await GoogleCredential.GetApplicationDefaultAsync()).CreateScoped(new[] { AuthScope });
             string oauth2Token = await credential.GetAccessTokenForRequestAsync();
-            var headerInterceptor = OAuth2Interceptors.FromAccessToken(oauth2Token);
+            var headerInterceptor = AuthInterceptors.FromAccessToken(oauth2Token);
 
             var request = SimpleRequest.CreateBuilder()
                 .SetFillUsername(true)
@@ -409,7 +412,7 @@ namespace Grpc.IntegrationTesting
                 .Build();
 
             var headers = new Metadata();
-            headerInterceptor("", headers);
+            headerInterceptor(null, "", headers);
             var response = client.UnaryCall(request, headers: headers);
 
             Assert.AreEqual(AuthScopeResponse, response.OauthScope);
@@ -458,6 +461,29 @@ namespace Grpc.IntegrationTesting
             Console.WriteLine("Passed!");
         }
 
+        public static async Task RunTimeoutOnSleepingServerAsync(TestService.ITestServiceClient client)
+        {
+            Console.WriteLine("running timeout_on_sleeping_server");
+
+            var deadline = DateTime.UtcNow.AddMilliseconds(1);
+            using (var call = client.FullDuplexCall(deadline: deadline))
+            {
+                try
+                {
+                    await call.RequestStream.WriteAsync(StreamingOutputCallRequest.CreateBuilder()
+                        .SetPayload(CreateZerosPayload(27182)).Build());
+                }
+                catch (InvalidOperationException)
+                {
+                    // Deadline was reached before write has started. Eat the exception and continue.
+                }
+
+                var ex = Assert.Throws<RpcException>(async () => await call.ResponseStream.MoveNext());
+                Assert.AreEqual(StatusCode.DeadlineExceeded, ex.Status.StatusCode);
+            }
+            Console.WriteLine("Passed!");
+        }
+
         // This is not an official interop test, but it's useful.
         public static void RunBenchmarkEmptyUnary(TestService.ITestServiceClient client)
         {
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs b/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
index 6fa721bc1cc0512f507df5ff6a77ab581fb18121..f3158aeb453eeb1cceeaddc2c1943a2c92b60c5d 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropClientServerTest.cs
@@ -75,9 +75,8 @@ namespace Grpc.IntegrationTesting
         [TestFixtureTearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
-            GrpcEnvironment.Shutdown();
         }
 
         [Test]
@@ -127,5 +126,11 @@ namespace Grpc.IntegrationTesting
         {
             await InteropClient.RunCancelAfterFirstResponseAsync(client);
         }
+
+        [Test]
+        public async Task TimeoutOnSleepingServerAsync()
+        {
+            await InteropClient.RunTimeoutOnSleepingServerAsync(client);
+        }
     }
 }
diff --git a/src/csharp/Grpc.IntegrationTesting/InteropServer.cs b/src/csharp/Grpc.IntegrationTesting/InteropServer.cs
index 504fd1185715794f3afc74c37c30fad4c785fed4..0cc8b2cde1d9cc6d7c2b147a7f70c41505b26c82 100644
--- a/src/csharp/Grpc.IntegrationTesting/InteropServer.cs
+++ b/src/csharp/Grpc.IntegrationTesting/InteropServer.cs
@@ -107,8 +107,6 @@ namespace Grpc.IntegrationTesting
             server.Start();
 
             server.ShutdownTask.Wait();
-
-            GrpcEnvironment.Shutdown();
         }
 
         private static ServerOptions ParseArguments(string[] args)
diff --git a/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs b/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs
index 1c398eb84eb907ec1128f1cebb4069cccc43d050..842795374fd060be2ed895da1e78e4686a3d923b 100644
--- a/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs
+++ b/src/csharp/Grpc.IntegrationTesting/SslCredentialsTest.cs
@@ -85,9 +85,8 @@ namespace Grpc.IntegrationTesting
         [TestFixtureTearDown]
         public void Cleanup()
         {
-            channel.Dispose();
+            channel.ShutdownAsync().Wait();
             server.ShutdownAsync().Wait();
-            GrpcEnvironment.Shutdown();
         }
 
         [Test]
diff --git a/src/csharp/doc/grpc_csharp_public.shfbproj b/src/csharp/doc/grpc_csharp_public.shfbproj
index 05c93f4a13fbc4e1163cf994266cdd66d34d0b23..d9b9749819099de7c731dee84d75ba93983ca2fa 100644
--- a/src/csharp/doc/grpc_csharp_public.shfbproj
+++ b/src/csharp/doc/grpc_csharp_public.shfbproj
@@ -18,7 +18,8 @@
     <Language>en-US</Language>
     <DocumentationSources>
       <DocumentationSource sourceFile="..\Grpc.Auth\Grpc.Auth.csproj" />
-<DocumentationSource sourceFile="..\Grpc.Core\Grpc.Core.csproj" /></DocumentationSources>
+      <DocumentationSource sourceFile="..\Grpc.Core\Grpc.Core.csproj" />
+    </DocumentationSources>
     <BuildAssemblerVerbosity>OnlyWarningsAndErrors</BuildAssemblerVerbosity>
     <HelpFileFormat>Website</HelpFileFormat>
     <IndentHtml>False</IndentHtml>
@@ -37,6 +38,15 @@
     <HelpTitle>gRPC C#</HelpTitle>
     <ContentPlacement>AboveNamespaces</ContentPlacement>
     <HtmlHelpName>Documentation</HtmlHelpName>
+    <NamespaceSummaries>
+      <NamespaceSummaryItem name="Grpc.Auth" isDocumented="True">Provides OAuth2 based authentication for gRPC. &lt;c&gt;Grpc.Auth&lt;/c&gt; currently consists of a set of very lightweight wrappers and uses C# &lt;a href="https://www.nuget.org/packages/Google.Apis.Auth/"&gt;Google.Apis.Auth&lt;/a&gt; library.</NamespaceSummaryItem>
+<NamespaceSummaryItem name="Grpc.Core" isDocumented="True">Main namespace for gRPC C# functionality. Contains concepts representing both client side and server side gRPC logic.
+
+&lt;seealso cref="Grpc.Core.Channel"/&gt; 
+&lt;seealso cref="Grpc.Core.Server"/&gt;</NamespaceSummaryItem>
+<NamespaceSummaryItem name="Grpc.Core.Logging" isDocumented="True">Provides functionality to redirect gRPC logs to application-specified destination.</NamespaceSummaryItem>
+<NamespaceSummaryItem name="Grpc.Core.Utils" isDocumented="True">Various utilities for gRPC C#.</NamespaceSummaryItem></NamespaceSummaries>
+    <MissingTags>Summary, Parameter, AutoDocumentCtors, Namespace, TypeParameter, AutoDocumentDispose</MissingTags>
   </PropertyGroup>
   <!-- There are no properties for these groups.  AnyCPU needs to appear in order for Visual Studio to perform
 			 the build.  The others are optional common platform types that may appear. -->
diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c
index bf2bbd873b010bcba43450060e8529e6aaa4fe87..489e219c492ebca0fbee33e8dd30d8770e773021 100644
--- a/src/csharp/ext/grpc_csharp_ext.c
+++ b/src/csharp/ext/grpc_csharp_ext.c
@@ -510,22 +510,27 @@ grpcsharp_call_start_unary(grpc_call *call, grpcsharp_batch_context *ctx,
   ops[0].data.send_initial_metadata.metadata =
       ctx->send_initial_metadata.metadata;
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
 
   ops[1].op = GRPC_OP_SEND_MESSAGE;
   ctx->send_message = string_to_byte_buffer(send_buffer, send_buffer_len);
   ops[1].data.send_message = ctx->send_message;
   ops[1].flags = write_flags;
+  ops[1].reserved = NULL;
 
   ops[2].op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
   ops[2].flags = 0;
+  ops[2].reserved = NULL;
 
   ops[3].op = GRPC_OP_RECV_INITIAL_METADATA;
   ops[3].data.recv_initial_metadata = &(ctx->recv_initial_metadata);
   ops[3].flags = 0;
+  ops[3].reserved = NULL;
 
   ops[4].op = GRPC_OP_RECV_MESSAGE;
   ops[4].data.recv_message = &(ctx->recv_message);
   ops[4].flags = 0;
+  ops[4].reserved = NULL;
 
   ops[5].op = GRPC_OP_RECV_STATUS_ON_CLIENT;
   ops[5].data.recv_status_on_client.trailing_metadata =
@@ -538,6 +543,7 @@ grpcsharp_call_start_unary(grpc_call *call, grpcsharp_batch_context *ctx,
   ops[5].data.recv_status_on_client.status_details_capacity =
       &(ctx->recv_status_on_client.status_details_capacity);
   ops[5].flags = 0;
+  ops[5].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
@@ -556,14 +562,17 @@ grpcsharp_call_start_client_streaming(grpc_call *call,
   ops[0].data.send_initial_metadata.metadata =
       ctx->send_initial_metadata.metadata;
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
 
   ops[1].op = GRPC_OP_RECV_INITIAL_METADATA;
   ops[1].data.recv_initial_metadata = &(ctx->recv_initial_metadata);
   ops[1].flags = 0;
+  ops[1].reserved = NULL;
 
   ops[2].op = GRPC_OP_RECV_MESSAGE;
   ops[2].data.recv_message = &(ctx->recv_message);
   ops[2].flags = 0;
+  ops[2].reserved = NULL;
 
   ops[3].op = GRPC_OP_RECV_STATUS_ON_CLIENT;
   ops[3].data.recv_status_on_client.trailing_metadata =
@@ -576,6 +585,7 @@ grpcsharp_call_start_client_streaming(grpc_call *call,
   ops[3].data.recv_status_on_client.status_details_capacity =
       &(ctx->recv_status_on_client.status_details_capacity);
   ops[3].flags = 0;
+  ops[3].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
@@ -585,7 +595,7 @@ GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_start_server_streaming(
     grpc_call *call, grpcsharp_batch_context *ctx, const char *send_buffer,
     size_t send_buffer_len, grpc_metadata_array *initial_metadata, gpr_uint32 write_flags) {
   /* TODO: don't use magic number */
-  grpc_op ops[5];
+  grpc_op ops[4];
   ops[0].op = GRPC_OP_SEND_INITIAL_METADATA;
   grpcsharp_metadata_array_move(&(ctx->send_initial_metadata),
                                 initial_metadata);
@@ -593,30 +603,30 @@ GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_start_server_streaming(
   ops[0].data.send_initial_metadata.metadata =
       ctx->send_initial_metadata.metadata;
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
 
   ops[1].op = GRPC_OP_SEND_MESSAGE;
   ctx->send_message = string_to_byte_buffer(send_buffer, send_buffer_len);
   ops[1].data.send_message = ctx->send_message;
   ops[1].flags = write_flags;
+  ops[1].reserved = NULL;
 
   ops[2].op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
   ops[2].flags = 0;
+  ops[2].reserved = NULL;
 
-  ops[3].op = GRPC_OP_RECV_INITIAL_METADATA;
-  ops[3].data.recv_initial_metadata = &(ctx->recv_initial_metadata);
-  ops[3].flags = 0;
-
-  ops[4].op = GRPC_OP_RECV_STATUS_ON_CLIENT;
-  ops[4].data.recv_status_on_client.trailing_metadata =
+  ops[3].op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+  ops[3].data.recv_status_on_client.trailing_metadata =
       &(ctx->recv_status_on_client.trailing_metadata);
-  ops[4].data.recv_status_on_client.status =
+  ops[3].data.recv_status_on_client.status =
       &(ctx->recv_status_on_client.status);
   /* not using preallocation for status_details */
-  ops[4].data.recv_status_on_client.status_details =
+  ops[3].data.recv_status_on_client.status_details =
       &(ctx->recv_status_on_client.status_details);
-  ops[4].data.recv_status_on_client.status_details_capacity =
+  ops[3].data.recv_status_on_client.status_details_capacity =
       &(ctx->recv_status_on_client.status_details_capacity);
-  ops[4].flags = 0;
+  ops[3].flags = 0;
+  ops[3].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
@@ -627,7 +637,7 @@ grpcsharp_call_start_duplex_streaming(grpc_call *call,
                                       grpcsharp_batch_context *ctx,
                                       grpc_metadata_array *initial_metadata) {
   /* TODO: don't use magic number */
-  grpc_op ops[3];
+  grpc_op ops[2];
   ops[0].op = GRPC_OP_SEND_INITIAL_METADATA;
   grpcsharp_metadata_array_move(&(ctx->send_initial_metadata),
                                 initial_metadata);
@@ -635,27 +645,38 @@ grpcsharp_call_start_duplex_streaming(grpc_call *call,
   ops[0].data.send_initial_metadata.metadata =
       ctx->send_initial_metadata.metadata;
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
 
-  ops[1].op = GRPC_OP_RECV_INITIAL_METADATA;
-  ops[1].data.recv_initial_metadata = &(ctx->recv_initial_metadata);
-  ops[1].flags = 0;
-
-  ops[2].op = GRPC_OP_RECV_STATUS_ON_CLIENT;
-  ops[2].data.recv_status_on_client.trailing_metadata =
+  ops[1].op = GRPC_OP_RECV_STATUS_ON_CLIENT;
+  ops[1].data.recv_status_on_client.trailing_metadata =
       &(ctx->recv_status_on_client.trailing_metadata);
-  ops[2].data.recv_status_on_client.status =
+  ops[1].data.recv_status_on_client.status =
       &(ctx->recv_status_on_client.status);
   /* not using preallocation for status_details */
-  ops[2].data.recv_status_on_client.status_details =
+  ops[1].data.recv_status_on_client.status_details =
       &(ctx->recv_status_on_client.status_details);
-  ops[2].data.recv_status_on_client.status_details_capacity =
+  ops[1].data.recv_status_on_client.status_details_capacity =
       &(ctx->recv_status_on_client.status_details_capacity);
-  ops[2].flags = 0;
+  ops[1].flags = 0;
+  ops[1].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
 }
 
+GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_recv_initial_metadata(
+	grpc_call *call, grpcsharp_batch_context *ctx) {
+	/* TODO: don't use magic number */
+	grpc_op ops[1];
+	ops[0].op = GRPC_OP_RECV_INITIAL_METADATA;
+	ops[0].data.recv_initial_metadata = &(ctx->recv_initial_metadata);
+	ops[0].flags = 0;
+	ops[0].reserved = NULL;
+
+	return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
+		NULL);
+}
+
 GPR_EXPORT grpc_call_error GPR_CALLTYPE
 grpcsharp_call_send_message(grpc_call *call, grpcsharp_batch_context *ctx,
                             const char *send_buffer, size_t send_buffer_len,
@@ -668,10 +689,12 @@ grpcsharp_call_send_message(grpc_call *call, grpcsharp_batch_context *ctx,
   ctx->send_message = string_to_byte_buffer(send_buffer, send_buffer_len);
   ops[0].data.send_message = ctx->send_message;
   ops[0].flags = write_flags;
+  ops[0].reserved = NULL;
   ops[1].op = GRPC_OP_SEND_INITIAL_METADATA;
   ops[1].data.send_initial_metadata.count = 0;
   ops[1].data.send_initial_metadata.metadata = NULL;
   ops[1].flags = 0;
+  ops[1].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, nops, ctx, NULL);
 }
@@ -683,6 +706,7 @@ grpcsharp_call_send_close_from_client(grpc_call *call,
   grpc_op ops[1];
   ops[0].op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
@@ -706,10 +730,12 @@ GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_send_status_from_server(
   ops[0].data.send_status_from_server.trailing_metadata =
       ctx->send_status_from_server.trailing_metadata.metadata;
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
   ops[1].op = GRPC_OP_SEND_INITIAL_METADATA;
   ops[1].data.send_initial_metadata.count = 0;
   ops[1].data.send_initial_metadata.metadata = NULL;
   ops[1].flags = 0;
+  ops[1].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, nops, ctx, NULL);
 }
@@ -721,6 +747,7 @@ grpcsharp_call_recv_message(grpc_call *call, grpcsharp_batch_context *ctx) {
   ops[0].op = GRPC_OP_RECV_MESSAGE;
   ops[0].data.recv_message = &(ctx->recv_message);
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
 }
@@ -733,6 +760,7 @@ grpcsharp_call_start_serverside(grpc_call *call, grpcsharp_batch_context *ctx) {
   ops[0].data.recv_close_on_server.cancelled =
       (&ctx->recv_close_on_server_cancelled);
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
@@ -751,6 +779,7 @@ grpcsharp_call_send_initial_metadata(grpc_call *call,
   ops[0].data.send_initial_metadata.metadata =
       ctx->send_initial_metadata.metadata;
   ops[0].flags = 0;
+  ops[0].reserved = NULL;
 
   return grpc_call_start_batch(call, ops, sizeof(ops) / sizeof(ops[0]), ctx,
                                NULL);
diff --git a/src/node/README.md b/src/node/README.md
index 7d3d8c7fa101addfc350bf200656c54e0d6f45a4..b6411537c7b7fe19c417f66d3077411e06039b8c 100644
--- a/src/node/README.md
+++ b/src/node/README.md
@@ -5,11 +5,35 @@ Alpha : Ready for early adopters
 
 ## PREREQUISITES
 - `node`: This requires `node` to be installed. If you instead have the `nodejs` executable on Debian, you should install the [`nodejs-legacy`](https://packages.debian.org/sid/nodejs-legacy) package.
-- [homebrew][] on Mac OS X, [linuxbrew][] on Linux.  These simplify the installation of the gRPC C core.
+- [homebrew][] on Mac OS X.  These simplify the installation of the gRPC C core.
 
 ## INSTALLATION
-On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][].
-Run the following command to install gRPC Node.js.
+
+**Linux (Debian):**
+
+Add [Debian unstable][] to your `sources.list` file. Example:
+
+```sh
+echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" | \
+sudo tee -a /etc/apt/sources.list
+```
+
+Install the gRPC Debian package
+
+```sh
+sudo apt-get update
+sudo apt-get install libgrpc-dev
+```
+
+Install the gRPC NPM package
+
+```sh
+npm install grpc
+```
+
+**Mac OS X**
+
+Install [homebrew][]. Run the following command to install gRPC Node.js.
 ```sh
 $ curl -fsSL https://goo.gl/getgrpc | bash -s nodejs
 ```
@@ -88,5 +112,5 @@ ServerCredentials
 An object with factory methods for creating credential objects for servers.
 
 [homebrew]:http://brew.sh
-[linuxbrew]:https://github.com/Homebrew/linuxbrew#installation
 [gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
+[Debian unstable]:https://www.debian.org/releases/sid/
diff --git a/src/node/examples/perf_test.js b/src/node/examples/perf_test.js
index 214b9384d55741c059b4fab0f75c2f3f0ec8f8d7..ba8fbf88d245a6df9aac7a4a948d52f5b6d85e35 100644
--- a/src/node/examples/perf_test.js
+++ b/src/node/examples/perf_test.js
@@ -40,7 +40,7 @@ var interop_server = require('../interop/interop_server.js');
 
 function runTest(iterations, callback) {
   var testServer = interop_server.getServer(0, false);
-  testServer.server.listen();
+  testServer.server.start();
   var client = new testProto.TestService('localhost:' + testServer.port,
                                          grpc.Credentials.createInsecure());
 
diff --git a/src/node/examples/qps_test.js b/src/node/examples/qps_test.js
index 1ce4dbe0707db41b571c7c6de7ebe86573ce26bb..ec968b8540bcf46addfb8ba8eb9fbc094c8b8419 100644
--- a/src/node/examples/qps_test.js
+++ b/src/node/examples/qps_test.js
@@ -60,7 +60,7 @@ var interop_server = require('../interop/interop_server.js');
  */
 function runTest(concurrent_calls, seconds, callback) {
   var testServer = interop_server.getServer(0, false);
-  testServer.server.listen();
+  testServer.server.start();
   var client = new testProto.TestService('localhost:' + testServer.port,
                                          grpc.Credentials.createInsecure());
 
diff --git a/src/node/examples/route_guide_server.js b/src/node/examples/route_guide_server.js
index bb8e79b5bd3ccd3ef3fe7f36087df10d1b6bab78..465b32f54f4eeaea6fab17db2b3ee3a2490f8a4d 100644
--- a/src/node/examples/route_guide_server.js
+++ b/src/node/examples/route_guide_server.js
@@ -248,7 +248,7 @@ if (require.main === module) {
       throw err;
     }
     feature_list = JSON.parse(data);
-    routeServer.listen();
+    routeServer.start();
   });
 }
 
diff --git a/src/node/examples/stock_server.js b/src/node/examples/stock_server.js
index dfcfe30eb4374d5161ef475f018a03f55c9a32a4..12e547958450cb0ef8341a4cf4fe88c217912705 100644
--- a/src/node/examples/stock_server.js
+++ b/src/node/examples/stock_server.js
@@ -81,7 +81,7 @@ stockServer.addProtoService(examples.Stock.service, {
 
 if (require.main === module) {
   stockServer.bind('0.0.0.0:50051', grpc.ServerCredentials.createInsecure());
-  stockServer.listen();
+  stockServer.start();
 }
 
 module.exports = stockServer;
diff --git a/src/node/ext/call.cc b/src/node/ext/call.cc
index 6fc1bc424f1d239f20e3e811e2608ceb1febdcac..18858fa334ad8e7763a4c37b8ed4006f85c48801 100644
--- a/src/node/ext/call.cc
+++ b/src/node/ext/call.cc
@@ -207,6 +207,13 @@ class SendMessageOp : public Op {
     if (!::node::Buffer::HasInstance(value)) {
       return false;
     }
+    Handle<Object> object_value = value->ToObject();
+    if (object_value->HasOwnProperty(NanNew("grpcWriteFlags"))) {
+      Handle<Value> flag_value = object_value->Get(NanNew("grpcWriteFlags"));
+      if (flag_value->IsUint32()) {
+        out->flags = flag_value->Uint32Value() & GRPC_WRITE_USED_MASK;
+      }
+    }
     out->data.send_message = BufferToByteBuffer(value);
     Persistent<Value> *handle = new Persistent<Value>();
     NanAssignPersistent(*handle, value);
@@ -457,10 +464,6 @@ void Call::Init(Handle<Object> exports) {
                           NanNew<FunctionTemplate>(GetPeer)->GetFunction());
   NanAssignPersistent(fun_tpl, tpl);
   Handle<Function> ctr = tpl->GetFunction();
-  ctr->Set(NanNew("WRITE_BUFFER_HINT"),
-           NanNew<Uint32, uint32_t>(GRPC_WRITE_BUFFER_HINT));
-  ctr->Set(NanNew("WRITE_NO_COMPRESS"),
-           NanNew<Uint32, uint32_t>(GRPC_WRITE_NO_COMPRESS));
   exports->Set(NanNew("Call"), ctr);
   constructor = new NanCallback(ctr);
 }
@@ -502,6 +505,22 @@ NAN_METHOD(Call::New) {
         return NanThrowTypeError(
             "Call's third argument must be a date or a number");
       }
+      // These arguments are at the end because they are optional
+      grpc_call *parent_call = NULL;
+      if (Call::HasInstance(args[4])) {
+        Call *parent_obj = ObjectWrap::Unwrap<Call>(args[4]->ToObject());
+        parent_call = parent_obj->wrapped_call;
+      } else if (!(args[4]->IsUndefined() || args[4]->IsNull())) {
+        return NanThrowTypeError(
+            "Call's fifth argument must be another call, if provided");
+      }
+      gpr_uint32 propagate_flags = GRPC_PROPAGATE_DEFAULTS;
+      if (args[5]->IsUint32()) {
+        propagate_flags = args[5]->Uint32Value();
+      } else if (!(args[5]->IsUndefined() || args[5]->IsNull())) {
+        return NanThrowTypeError(
+            "Call's sixth argument must be propagate flags, if provided");
+      }
       Handle<Object> channel_object = args[0]->ToObject();
       Channel *channel = ObjectWrap::Unwrap<Channel>(channel_object);
       if (channel->GetWrappedChannel() == NULL) {
@@ -514,12 +533,12 @@ NAN_METHOD(Call::New) {
       if (args[3]->IsString()) {
         NanUtf8String host_override(args[3]);
         wrapped_call = grpc_channel_create_call(
-            wrapped_channel, NULL, GRPC_PROPAGATE_DEFAULTS,
+            wrapped_channel, parent_call, propagate_flags,
             CompletionQueueAsyncWorker::GetQueue(), *method,
             *host_override, MillisecondsToTimespec(deadline), NULL);
       } else if (args[3]->IsUndefined() || args[3]->IsNull()) {
         wrapped_call = grpc_channel_create_call(
-            wrapped_channel, NULL, GRPC_PROPAGATE_DEFAULTS,
+            wrapped_channel, parent_call, propagate_flags,
             CompletionQueueAsyncWorker::GetQueue(), *method,
             NULL, MillisecondsToTimespec(deadline), NULL);
       } else {
@@ -565,6 +584,7 @@ NAN_METHOD(Call::StartBatch) {
     uint32_t type = keys->Get(i)->Uint32Value();
     ops[i].op = static_cast<grpc_op_type>(type);
     ops[i].flags = 0;
+    ops[i].reserved = NULL;
     switch (type) {
       case GRPC_OP_SEND_INITIAL_METADATA:
         op.reset(new SendMetadataOp());
@@ -603,7 +623,7 @@ NAN_METHOD(Call::StartBatch) {
       call->wrapped_call, &ops[0], nops, new struct tag(
           callback, op_vector.release(), resources), NULL);
   if (error != GRPC_CALL_OK) {
-    return NanThrowError("startBatch failed", error);
+    return NanThrowError(nanErrorWithCode("startBatch failed", error));
   }
   CompletionQueueAsyncWorker::Next();
   NanReturnUndefined();
@@ -617,7 +637,7 @@ NAN_METHOD(Call::Cancel) {
   Call *call = ObjectWrap::Unwrap<Call>(args.This());
   grpc_call_error error = grpc_call_cancel(call->wrapped_call, NULL);
   if (error != GRPC_CALL_OK) {
-    return NanThrowError("cancel failed", error);
+    return NanThrowError(nanErrorWithCode("cancel failed", error));
   }
   NanReturnUndefined();
 }
diff --git a/src/node/ext/call.h b/src/node/ext/call.h
index 6acda76197ffcac36af764ba5c83e5a6c7df510c..ef6e5fcd21083353c7d241ca9fee8e8fc8ed0990 100644
--- a/src/node/ext/call.h
+++ b/src/node/ext/call.h
@@ -51,6 +51,19 @@ namespace node {
 using std::unique_ptr;
 using std::shared_ptr;
 
+/**
+ * Helper function for throwing errors with a grpc_call_error value.
+ * Modified from the answer by Gus Goose to
+ * http://stackoverflow.com/questions/31794200.
+ */
+inline v8::Local<v8::Value> nanErrorWithCode(const char *msg,
+                                             grpc_call_error code) {
+    NanEscapableScope();
+    v8::Local<v8::Object> err = NanError(msg).As<v8::Object>();
+    err->Set(NanNew("code"), NanNew<v8::Uint32>(code));
+    return NanEscapeScope(err);
+}
+
 v8::Handle<v8::Value> ParseMetadata(const grpc_metadata_array *metadata_array);
 
 class PersistentHolder {
diff --git a/src/node/ext/node_grpc.cc b/src/node/ext/node_grpc.cc
index 331ccb60d66c496f1bf324a287bf3481bf6789b1..0cf30da9228d83b6154834f5d51136e644f301ac 100644
--- a/src/node/ext/node_grpc.cc
+++ b/src/node/ext/node_grpc.cc
@@ -159,6 +159,25 @@ void InitOpTypeConstants(Handle<Object> exports) {
   op_type->Set(NanNew("RECV_CLOSE_ON_SERVER"), RECV_CLOSE_ON_SERVER);
 }
 
+void InitPropagateConstants(Handle<Object> exports) {
+  NanScope();
+  Handle<Object> propagate = NanNew<Object>();
+  exports->Set(NanNew("propagate"), propagate);
+  Handle<Value> DEADLINE(NanNew<Uint32, uint32_t>(GRPC_PROPAGATE_DEADLINE));
+  propagate->Set(NanNew("DEADLINE"), DEADLINE);
+  Handle<Value> CENSUS_STATS_CONTEXT(
+      NanNew<Uint32, uint32_t>(GRPC_PROPAGATE_CENSUS_STATS_CONTEXT));
+  propagate->Set(NanNew("CENSUS_STATS_CONTEXT"), CENSUS_STATS_CONTEXT);
+  Handle<Value> CENSUS_TRACING_CONTEXT(
+      NanNew<Uint32, uint32_t>(GRPC_PROPAGATE_CENSUS_TRACING_CONTEXT));
+  propagate->Set(NanNew("CENSUS_TRACING_CONTEXT"), CENSUS_TRACING_CONTEXT);
+  Handle<Value> CANCELLATION(
+      NanNew<Uint32, uint32_t>(GRPC_PROPAGATE_CANCELLATION));
+  propagate->Set(NanNew("CANCELLATION"), CANCELLATION);
+  Handle<Value> DEFAULTS(NanNew<Uint32, uint32_t>(GRPC_PROPAGATE_DEFAULTS));
+  propagate->Set(NanNew("DEFAULTS"), DEFAULTS);
+}
+
 void InitConnectivityStateConstants(Handle<Object> exports) {
   NanScope();
   Handle<Object> channel_state = NanNew<Object>();
@@ -177,13 +196,25 @@ void InitConnectivityStateConstants(Handle<Object> exports) {
   channel_state->Set(NanNew("FATAL_FAILURE"), FATAL_FAILURE);
 }
 
+void InitWriteFlags(Handle<Object> exports) {
+  NanScope();
+  Handle<Object> write_flags = NanNew<Object>();
+  exports->Set(NanNew("writeFlags"), write_flags);
+  Handle<Value> BUFFER_HINT(NanNew<Uint32, uint32_t>(GRPC_WRITE_BUFFER_HINT));
+  write_flags->Set(NanNew("BUFFER_HINT"), BUFFER_HINT);
+  Handle<Value> NO_COMPRESS(NanNew<Uint32, uint32_t>(GRPC_WRITE_NO_COMPRESS));
+  write_flags->Set(NanNew("NO_COMPRESS"), NO_COMPRESS);
+}
+
 void init(Handle<Object> exports) {
   NanScope();
   grpc_init();
   InitStatusConstants(exports);
   InitCallErrorConstants(exports);
   InitOpTypeConstants(exports);
+  InitPropagateConstants(exports);
   InitConnectivityStateConstants(exports);
+  InitWriteFlags(exports);
 
   grpc::node::Call::Init(exports);
   grpc::node::Channel::Init(exports);
diff --git a/src/node/ext/server.cc b/src/node/ext/server.cc
index 8e39644846da09226640f39f8f8600bad540eb5a..01217bce797500b30cf9e7905e253a1a79a421fc 100644
--- a/src/node/ext/server.cc
+++ b/src/node/ext/server.cc
@@ -235,7 +235,7 @@ NAN_METHOD(Server::RequestCall) {
       new struct tag(new NanCallback(args[0].As<Function>()), ops.release(),
                      shared_ptr<Resources>(nullptr)));
   if (error != GRPC_CALL_OK) {
-    return NanThrowError("requestCall failed", error);
+    return NanThrowError(nanErrorWithCode("requestCall failed", error));
   }
   CompletionQueueAsyncWorker::Next();
   NanReturnUndefined();
diff --git a/src/node/ext/server_credentials.cc b/src/node/ext/server_credentials.cc
index 1b8e7b43fb2ea94c3723ae0cab34844a995ec7f9..6e17197e16061b97e3c43e3df02606acdef6e2f5 100644
--- a/src/node/ext/server_credentials.cc
+++ b/src/node/ext/server_credentials.cc
@@ -41,6 +41,7 @@
 namespace grpc {
 namespace node {
 
+using v8::Array;
 using v8::Exception;
 using v8::External;
 using v8::Function;
@@ -52,6 +53,7 @@ using v8::Local;
 using v8::Object;
 using v8::ObjectTemplate;
 using v8::Persistent;
+using v8::String;
 using v8::Value;
 
 NanCallback *ServerCredentials::constructor;
@@ -122,25 +124,66 @@ NAN_METHOD(ServerCredentials::CreateSsl) {
   // TODO: have the node API support multiple key/cert pairs.
   NanScope();
   char *root_certs = NULL;
-  grpc_ssl_pem_key_cert_pair key_cert_pair;
   if (::node::Buffer::HasInstance(args[0])) {
     root_certs = ::node::Buffer::Data(args[0]);
   } else if (!(args[0]->IsNull() || args[0]->IsUndefined())) {
     return NanThrowTypeError(
         "createSSl's first argument must be a Buffer if provided");
   }
-  if (!::node::Buffer::HasInstance(args[1])) {
-    return NanThrowTypeError("createSsl's second argument must be a Buffer");
+  if (!args[1]->IsArray()) {
+    return NanThrowTypeError(
+        "createSsl's second argument must be a list of objects");
+  }
+  int force_client_auth = 0;
+  if (args[2]->IsBoolean()) {
+    force_client_auth = (int)args[2]->BooleanValue();
+  } else if (!(args[2]->IsUndefined() || args[2]->IsNull())) {
+    return NanThrowTypeError(
+        "createSsl's third argument must be a boolean if provided");
   }
-  key_cert_pair.private_key = ::node::Buffer::Data(args[1]);
-  if (!::node::Buffer::HasInstance(args[2])) {
-    return NanThrowTypeError("createSsl's third argument must be a Buffer");
+  Handle<Array> pair_list = Local<Array>::Cast(args[1]);
+  uint32_t key_cert_pair_count = pair_list->Length();
+  grpc_ssl_pem_key_cert_pair *key_cert_pairs = new grpc_ssl_pem_key_cert_pair[
+      key_cert_pair_count];
+
+  Handle<String> key_key = NanNew("private_key");
+  Handle<String> cert_key = NanNew("cert_chain");
+
+  for(uint32_t i = 0; i < key_cert_pair_count; i++) {
+    if (!pair_list->Get(i)->IsObject()) {
+      delete key_cert_pairs;
+      return NanThrowTypeError("Key/cert pairs must be objects");
+    }
+    Handle<Object> pair_obj = pair_list->Get(i)->ToObject();
+    if (!pair_obj->HasOwnProperty(key_key)) {
+      delete key_cert_pairs;
+      return NanThrowTypeError(
+          "Key/cert pairs must have a private_key and a cert_chain");
+    }
+    if (!pair_obj->HasOwnProperty(cert_key)) {
+      delete key_cert_pairs;
+      return NanThrowTypeError(
+          "Key/cert pairs must have a private_key and a cert_chain");
+    }
+    if (!::node::Buffer::HasInstance(pair_obj->Get(key_key))) {
+      delete key_cert_pairs;
+      return NanThrowTypeError("private_key must be a Buffer");
+    }
+    if (!::node::Buffer::HasInstance(pair_obj->Get(cert_key))) {
+      delete key_cert_pairs;
+      return NanThrowTypeError("cert_chain must be a Buffer");
+    }
+    key_cert_pairs[i].private_key = ::node::Buffer::Data(
+        pair_obj->Get(key_key));
+    key_cert_pairs[i].cert_chain = ::node::Buffer::Data(
+        pair_obj->Get(cert_key));
   }
-  key_cert_pair.cert_chain = ::node::Buffer::Data(args[2]);
-  // TODO Add a force_client_auth parameter and pass it as the last parameter
-  // here.
   grpc_server_credentials *creds =
-      grpc_ssl_server_credentials_create(root_certs, &key_cert_pair, 1, 0);
+      grpc_ssl_server_credentials_create(root_certs,
+                                         key_cert_pairs,
+                                         key_cert_pair_count,
+                                         force_client_auth);
+  delete key_cert_pairs;
   if (creds == NULL) {
     NanReturnNull();
   }
diff --git a/src/node/health_check/health.js b/src/node/health_check/health.js
index 87e00197fe57e4a4b6eb3d4a65439a09c94ac414..84d7e0568e50d58489b6733419fbcf2f6e1cf58e 100644
--- a/src/node/health_check/health.js
+++ b/src/node/health_check/health.js
@@ -45,17 +45,13 @@ function HealthImplementation(statusMap) {
   this.statusMap = _.clone(statusMap);
 }
 
-HealthImplementation.prototype.setStatus = function(host, service, status) {
-  if (!this.statusMap[host]) {
-    this.statusMap[host] = {};
-  }
-  this.statusMap[host][service] = status;
+HealthImplementation.prototype.setStatus = function(service, status) {
+  this.statusMap[service] = status;
 };
 
 HealthImplementation.prototype.check = function(call, callback){
-  var host = call.request.host;
   var service = call.request.service;
-  var status = _.get(this.statusMap, [host, service], null);
+  var status = _.get(this.statusMap, service, null);
   if (status === null) {
     callback({code:grpc.status.NOT_FOUND});
   } else {
diff --git a/src/node/health_check/health.proto b/src/node/health_check/health.proto
index d31df1e0a7c018837d2ede9fed8e0084d552c4a3..57f4aaa9c08d9bbc81aa755cf6b0b3efb76d8adb 100644
--- a/src/node/health_check/health.proto
+++ b/src/node/health_check/health.proto
@@ -32,8 +32,7 @@ syntax = "proto3";
 package grpc.health.v1alpha;
 
 message HealthCheckRequest {
-  string host = 1;
-  string service = 2;
+  string service = 1;
 }
 
 message HealthCheckResponse {
@@ -47,4 +46,4 @@ message HealthCheckResponse {
 
 service Health {
   rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
-}
\ No newline at end of file
+}
diff --git a/src/node/index.js b/src/node/index.js
index b26ab35f2c578cab438bedd2f3c7a8a4ec850431..889b0ac0e92eee151670d8b11495638535cd6f90 100644
--- a/src/node/index.js
+++ b/src/node/index.js
@@ -134,11 +134,21 @@ exports.Server = server.Server;
  */
 exports.status = grpc.status;
 
+/**
+ * Propagate flag name to number mapping
+ */
+exports.propagate = grpc.propagate;
+
 /**
  * Call error name to code number mapping
  */
 exports.callError = grpc.callError;
 
+/**
+ * Write flag name to code number mapping
+ */
+exports.writeFlags = grpc.writeFlags;
+
 /**
  * Credentials factories
  */
diff --git a/src/node/interop/interop_client.js b/src/node/interop/interop_client.js
index 6d6f9a349e558e344cdd3d6f9efee41fa5e7ded1..612dcf01f655c9c8aa15e966e60bb30dd2b804a1 100644
--- a/src/node/interop/interop_client.js
+++ b/src/node/interop/interop_client.js
@@ -264,7 +264,9 @@ function timeoutOnSleepingServer(client, done) {
     payload: {body: zeroBuffer(27182)}
   });
   call.on('error', function(error) {
-    assert.strictEqual(error.code, grpc.status.DEADLINE_EXCEEDED);
+
+    assert(error.code === grpc.status.DEADLINE_EXCEEDED ||
+        error.code === grpc.status.INTERNAL);
     done();
   });
 }
diff --git a/src/node/interop/interop_server.js b/src/node/interop/interop_server.js
index ece22cce31635a1029aeb4e44afe5bc7dea6cb23..99155e99584cb0689e29f1c2fad1d1861ca2499b 100644
--- a/src/node/interop/interop_server.js
+++ b/src/node/interop/interop_server.js
@@ -169,8 +169,8 @@ function getServer(port, tls) {
     var key_data = fs.readFileSync(key_path);
     var pem_data = fs.readFileSync(pem_path);
     server_creds = grpc.ServerCredentials.createSsl(null,
-                                                    key_data,
-                                                    pem_data);
+                                                    [{private_key: key_data,
+                                                      cert_chain: pem_data}]);
   } else {
     server_creds = grpc.ServerCredentials.createInsecure();
   }
@@ -194,7 +194,7 @@ if (require.main === module) {
   });
   var server_obj = getServer(argv.port, argv.use_tls === 'true');
   console.log('Server attaching to port ' + argv.port);
-  server_obj.server.listen();
+  server_obj.server.start();
 }
 
 /**
diff --git a/src/node/src/client.js b/src/node/src/client.js
index d14713f393f3924b77869525cd8581353f8fa409..7b7eae51d2622b5042c6d14acff5e53e5aa11fe8 100644
--- a/src/node/src/client.js
+++ b/src/node/src/client.js
@@ -79,13 +79,19 @@ function ClientWritableStream(call, serialize) {
  * implementation of a method needed for implementing stream.Writable.
  * @access private
  * @param {Buffer} chunk The chunk to write
- * @param {string} encoding Ignored
+ * @param {string} encoding Used to pass write flags
  * @param {function(Error=)} callback Called when the write is complete
  */
 function _write(chunk, encoding, callback) {
   /* jshint validthis: true */
   var batch = {};
-  batch[grpc.opType.SEND_MESSAGE] = this.serialize(chunk);
+  var message = this.serialize(chunk);
+  if (_.isFinite(encoding)) {
+    /* Attach the encoding if it is a finite number. This is the closest we
+     * can get to checking that it is valid flags */
+    message.grpcWriteFlags = encoding;
+  }
+  batch[grpc.opType.SEND_MESSAGE] = message;
   this.call.startBatch(batch, function(err, event) {
     if (err) {
       // Something has gone wrong. Stop writing by failing to call callback
@@ -216,14 +222,19 @@ ClientDuplexStream.prototype.getPeer = getPeer;
 function getCall(channel, method, options) {
   var deadline;
   var host;
+  var parent;
+  var propagate_flags;
   if (options) {
     deadline = options.deadline;
     host = options.host;
+    parent = _.get(options, 'parent.call');
+    propagate_flags = options.propagate_flags;
   }
   if (deadline === undefined) {
     deadline = Infinity;
   }
-  return new grpc.Call(channel, method, deadline, host);
+  return new grpc.Call(channel, method, deadline, host,
+                       parent, propagate_flags);
 }
 
 /**
@@ -268,8 +279,12 @@ function makeUnaryRequestFunction(method, serialize, deserialize) {
         return;
       }
       var client_batch = {};
+      var message = serialize(argument);
+      if (options) {
+        message.grpcWriteFlags = options.flags;
+      }
       client_batch[grpc.opType.SEND_INITIAL_METADATA] = metadata;
-      client_batch[grpc.opType.SEND_MESSAGE] = serialize(argument);
+      client_batch[grpc.opType.SEND_MESSAGE] = message;
       client_batch[grpc.opType.SEND_CLOSE_FROM_CLIENT] = true;
       client_batch[grpc.opType.RECV_INITIAL_METADATA] = true;
       client_batch[grpc.opType.RECV_MESSAGE] = true;
@@ -402,9 +417,13 @@ function makeServerStreamRequestFunction(method, serialize, deserialize) {
         return;
       }
       var start_batch = {};
+      var message = serialize(argument);
+      if (options) {
+        message.grpcWriteFlags = options.flags;
+      }
       start_batch[grpc.opType.SEND_INITIAL_METADATA] = metadata;
       start_batch[grpc.opType.RECV_INITIAL_METADATA] = true;
-      start_batch[grpc.opType.SEND_MESSAGE] = serialize(argument);
+      start_batch[grpc.opType.SEND_MESSAGE] = message;
       start_batch[grpc.opType.SEND_CLOSE_FROM_CLIENT] = true;
       call.startBatch(start_batch, function(err, response) {
         if (err) {
diff --git a/src/node/src/server.js b/src/node/src/server.js
index 5c62f5990c701adb4e0fe8f26e1e253ddb618ac5..5037abae434d56f1bd9af6b7f32170865d74817c 100644
--- a/src/node/src/server.js
+++ b/src/node/src/server.js
@@ -115,8 +115,10 @@ function waitForCancel(call, emitter) {
  * @param {function(*):Buffer=} serialize Serialization function for the
  *     response
  * @param {Object=} metadata Optional trailing metadata to send with status
+ * @param {number=} flags Flags for modifying how the message is sent.
+ *     Defaults to 0.
  */
-function sendUnaryResponse(call, value, serialize, metadata) {
+function sendUnaryResponse(call, value, serialize, metadata, flags) {
   var end_batch = {};
   var status = {
     code: grpc.status.OK,
@@ -130,7 +132,9 @@ function sendUnaryResponse(call, value, serialize, metadata) {
     end_batch[grpc.opType.SEND_INITIAL_METADATA] = {};
     call.metadataSent = true;
   }
-  end_batch[grpc.opType.SEND_MESSAGE] = serialize(value);
+  var message = serialize(value);
+  message.grpcWriteFlags = flags;
+  end_batch[grpc.opType.SEND_MESSAGE] = message;
   end_batch[grpc.opType.SEND_STATUS_FROM_SERVER] = status;
   call.startBatch(end_batch, function (){});
 }
@@ -254,7 +258,7 @@ function ServerWritableStream(call, serialize) {
  * for implementing stream.Writable.
  * @access private
  * @param {Buffer} chunk The chunk of data to write
- * @param {string} encoding Ignored
+ * @param {string} encoding Used to pass write flags
  * @param {function(Error=)} callback Callback to indicate that the write is
  *     complete
  */
@@ -265,7 +269,13 @@ function _write(chunk, encoding, callback) {
     batch[grpc.opType.SEND_INITIAL_METADATA] = {};
     this.call.metadataSent = true;
   }
-  batch[grpc.opType.SEND_MESSAGE] = this.serialize(chunk);
+  var message = this.serialize(chunk);
+  if (_.isFinite(encoding)) {
+    /* Attach the encoding if it is a finite number. This is the closest we
+     * can get to checking that it is valid flags */
+    message.grpcWriteFlags = encoding;
+  }
+  batch[grpc.opType.SEND_MESSAGE] = message;
   this.call.startBatch(batch, function(err, value) {
     if (err) {
       this.emit('error', err);
@@ -432,6 +442,7 @@ function handleUnary(call, handler, metadata) {
   });
   emitter.metadata = metadata;
   waitForCancel(call, emitter);
+  emitter.call = call;
   var batch = {};
   batch[grpc.opType.RECV_MESSAGE] = true;
   call.startBatch(batch, function(err, result) {
@@ -449,14 +460,14 @@ function handleUnary(call, handler, metadata) {
     if (emitter.cancelled) {
       return;
     }
-    handler.func(emitter, function sendUnaryData(err, value, trailer) {
+    handler.func(emitter, function sendUnaryData(err, value, trailer, flags) {
       if (err) {
         if (trailer) {
           err.metadata = trailer;
         }
         handleError(call, err);
       } else {
-        sendUnaryResponse(call, value, handler.serialize, trailer);
+        sendUnaryResponse(call, value, handler.serialize, trailer, flags);
       }
     });
   });
@@ -513,7 +524,7 @@ function handleClientStreaming(call, handler, metadata) {
   });
   waitForCancel(call, stream);
   stream.metadata = metadata;
-  handler.func(stream, function(err, value, trailer) {
+  handler.func(stream, function(err, value, trailer, flags) {
     stream.terminate();
     if (err) {
       if (trailer) {
@@ -521,7 +532,7 @@ function handleClientStreaming(call, handler, metadata) {
       }
       handleError(call, err);
     } else {
-      sendUnaryResponse(call, value, handler.serialize, trailer);
+      sendUnaryResponse(call, value, handler.serialize, trailer, flags);
     }
   });
 }
diff --git a/src/node/test/constant_test.js b/src/node/test/constant_test.js
index 93bf0c8ada0abc76059164b5034621c723629f86..fa06ad4e4d45d18564e4504cdcc07a3b06abd07a 100644
--- a/src/node/test/constant_test.js
+++ b/src/node/test/constant_test.js
@@ -79,6 +79,18 @@ var callErrorNames = [
 ];
 
 /**
+ * List of all propagate flag names
+ * @const
+ * @type {Array.<string>}
+ */
+var propagateFlagNames = [
+  'DEADLINE',
+  'CENSUS_STATS_CONTEXT',
+  'CENSUS_TRACING_CONTEXT',
+  'CANCELLATION',
+  'DEFAULTS'
+];
+/*
  * List of all connectivity state names
  * @const
  * @type {Array.<string>}
@@ -104,6 +116,12 @@ describe('constants', function() {
              'call error missing: ' + callErrorNames[i]);
     }
   });
+  it('should have all of the propagate flags', function() {
+    for (var i = 0; i < propagateFlagNames.length; i++) {
+      assert(grpc.propagate.hasOwnProperty(propagateFlagNames[i]),
+             'call error missing: ' + propagateFlagNames[i]);
+    }
+  });
   it('should have all of the connectivity states', function() {
     for (var i = 0; i < connectivityStateNames.length; i++) {
       assert(grpc.connectivityState.hasOwnProperty(connectivityStateNames[i]),
diff --git a/src/node/test/health_test.js b/src/node/test/health_test.js
index be4ef1d251b547b5bd0a4f8a442976088831bc84..04959f5f5520ec9db18262def840c5524699b53d 100644
--- a/src/node/test/health_test.js
+++ b/src/node/test/health_test.js
@@ -41,13 +41,9 @@ var grpc = require('../');
 
 describe('Health Checking', function() {
   var statusMap = {
-    '': {
-      '': 'SERVING',
-      'grpc.test.TestService': 'NOT_SERVING',
-    },
-    virtual_host: {
-      'grpc.test.TestService': 'SERVING'
-    }
+    '': 'SERVING',
+    'grpc.test.TestServiceNotServing': 'NOT_SERVING',
+    'grpc.test.TestServiceServing': 'SERVING'
   };
   var healthServer = new grpc.Server();
   healthServer.addProtoService(health.service,
@@ -71,15 +67,15 @@ describe('Health Checking', function() {
     });
   });
   it('should say that a disabled service is NOT_SERVING', function(done) {
-    healthClient.check({service: 'grpc.test.TestService'},
+    healthClient.check({service: 'grpc.test.TestServiceNotServing'},
                        function(err, response) {
                          assert.ifError(err);
                          assert.strictEqual(response.status, 'NOT_SERVING');
                          done();
                        });
   });
-  it('should say that a service on another host is SERVING', function(done) {
-    healthClient.check({host: 'virtual_host', service: 'grpc.test.TestService'},
+  it('should say that an enabled service is SERVING', function(done) {
+    healthClient.check({service: 'grpc.test.TestServiceServing'},
                        function(err, response) {
                          assert.ifError(err);
                          assert.strictEqual(response.status, 'SERVING');
@@ -93,12 +89,4 @@ describe('Health Checking', function() {
       done();
     });
   });
-  it('should get NOT_FOUND if the host is not registered', function(done) {
-    healthClient.check({host: 'wrong_host', service: 'grpc.test.TestService'},
-                       function(err, response) {
-                         assert(err);
-                         assert.strictEqual(err.code, grpc.status.NOT_FOUND);
-                         done();
-                       });
-  });
 });
diff --git a/src/node/test/server_test.js b/src/node/test/server_test.js
index a9df43909e94f875971b718d41168a1284076b7d..78bac8da294b9ea1ca5761b15c95c58899481779 100644
--- a/src/node/test/server_test.js
+++ b/src/node/test/server_test.js
@@ -70,7 +70,9 @@ describe('server', function() {
       var pem_path = path.join(__dirname, '../test/data/server1.pem');
       var key_data = fs.readFileSync(key_path);
       var pem_data = fs.readFileSync(pem_path);
-      var creds = grpc.ServerCredentials.createSsl(null, key_data, pem_data);
+      var creds = grpc.ServerCredentials.createSsl(null,
+                                                   [{private_key: key_data,
+                                                     cert_chain: pem_data}]);
       assert.doesNotThrow(function() {
         port = server.addHttp2Port('0.0.0.0:0', creds);
       });
@@ -83,7 +85,7 @@ describe('server', function() {
       server = new grpc.Server();
     });
   });
-  describe('listen', function() {
+  describe('start', function() {
     var server;
     before(function() {
       server = new grpc.Server();
@@ -92,7 +94,7 @@ describe('server', function() {
     after(function() {
       server.shutdown();
     });
-    it('should listen without error', function() {
+    it('should start without error', function() {
       assert.doesNotThrow(function() {
         server.start();
       });
diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js
index 098905e74b5471c14e5cd8897d152b2a5e58bb8b..ec7ed87728d17b2a4af9f32b28f357d6f77d5b04 100644
--- a/src/node/test/surface_test.js
+++ b/src/node/test/surface_test.js
@@ -67,6 +67,7 @@ function multiDone(done, count) {
     }
   };
 }
+
 var server_insecure_creds = grpc.ServerCredentials.createInsecure();
 
 describe('File loader', function() {
@@ -344,12 +345,14 @@ describe('Echo metadata', function() {
   });
 });
 describe('Other conditions', function() {
+  var test_service;
+  var Client;
   var client;
   var server;
   var port;
   before(function() {
     var test_proto = ProtoBuf.loadProtoFile(__dirname + '/test_service.proto');
-    var test_service = test_proto.lookup('TestService');
+    test_service = test_proto.lookup('TestService');
     server = new grpc.Server();
     server.addProtoService(test_service, {
       unary: function(call, cb) {
@@ -411,7 +414,7 @@ describe('Other conditions', function() {
       }
     });
     port = server.bind('localhost:0', server_insecure_creds);
-    var Client = surface_client.makeProtobufClientConstructor(test_service);
+    Client = surface_client.makeProtobufClientConstructor(test_service);
     client = new Client('localhost:' + port, grpc.Credentials.createInsecure());
     server.start();
   });
@@ -664,6 +667,168 @@ describe('Other conditions', function() {
       });
     });
   });
+  describe('Call propagation', function() {
+    var proxy;
+    var proxy_impl;
+    beforeEach(function() {
+      proxy = new grpc.Server();
+      proxy_impl = {
+        unary: function(call) {},
+        clientStream: function(stream) {},
+        serverStream: function(stream) {},
+        bidiStream: function(stream) {}
+      };
+    });
+    afterEach(function() {
+      console.log('Shutting down server');
+      proxy.shutdown();
+    });
+    describe('Cancellation', function() {
+      it('With a unary call', function(done) {
+        done = multiDone(done, 2);
+        proxy_impl.unary = function(parent, callback) {
+          client.unary(parent.request, function(err, value) {
+            try {
+              assert(err);
+              assert.strictEqual(err.code, grpc.status.CANCELLED);
+            } finally {
+              callback(err, value);
+              done();
+            }
+          }, null, {parent: parent});
+          call.cancel();
+        };
+        proxy.addProtoService(test_service, proxy_impl);
+        var proxy_port = proxy.bind('localhost:0', server_insecure_creds);
+        proxy.start();
+        var proxy_client = new Client('localhost:' + proxy_port,
+                                      grpc.Credentials.createInsecure());
+        var call = proxy_client.unary({}, function(err, value) {
+          done();
+        });
+      });
+      it('With a client stream call', function(done) {
+        done = multiDone(done, 2);
+        proxy_impl.clientStream = function(parent, callback) {
+          client.clientStream(function(err, value) {
+            try {
+              assert(err);
+              assert.strictEqual(err.code, grpc.status.CANCELLED);
+            } finally {
+              callback(err, value);
+              done();
+            }
+          }, null, {parent: parent});
+          call.cancel();
+        };
+        proxy.addProtoService(test_service, proxy_impl);
+        var proxy_port = proxy.bind('localhost:0', server_insecure_creds);
+        proxy.start();
+        var proxy_client = new Client('localhost:' + proxy_port,
+                                      grpc.Credentials.createInsecure());
+        var call = proxy_client.clientStream(function(err, value) {
+          done();
+        });
+      });
+      it('With a server stream call', function(done) {
+        done = multiDone(done, 2);
+        proxy_impl.serverStream = function(parent) {
+          var child = client.serverStream(parent.request, null,
+                                          {parent: parent});
+          child.on('error', function(err) {
+            assert(err);
+            assert.strictEqual(err.code, grpc.status.CANCELLED);
+            done();
+          });
+          call.cancel();
+        };
+        proxy.addProtoService(test_service, proxy_impl);
+        var proxy_port = proxy.bind('localhost:0', server_insecure_creds);
+        proxy.start();
+        var proxy_client = new Client('localhost:' + proxy_port,
+                                      grpc.Credentials.createInsecure());
+        var call = proxy_client.serverStream({});
+        call.on('error', function(err) {
+          done();
+        });
+      });
+      it('With a bidi stream call', function(done) {
+        done = multiDone(done, 2);
+        proxy_impl.bidiStream = function(parent) {
+          var child = client.bidiStream(null, {parent: parent});
+          child.on('error', function(err) {
+            assert(err);
+            assert.strictEqual(err.code, grpc.status.CANCELLED);
+            done();
+          });
+          call.cancel();
+        };
+        proxy.addProtoService(test_service, proxy_impl);
+        var proxy_port = proxy.bind('localhost:0', server_insecure_creds);
+        proxy.start();
+        var proxy_client = new Client('localhost:' + proxy_port,
+                                      grpc.Credentials.createInsecure());
+        var call = proxy_client.bidiStream();
+        call.on('error', function(err) {
+          done();
+        });
+      });
+    });
+    describe('Deadline', function() {
+      /* jshint bitwise:false */
+      var deadline_flags = (grpc.propagate.DEFAULTS &
+          ~grpc.propagate.CANCELLATION);
+      it('With a client stream call', function(done) {
+        done = multiDone(done, 2);
+        proxy_impl.clientStream = function(parent, callback) {
+          client.clientStream(function(err, value) {
+            try {
+              assert(err);
+              assert(err.code === grpc.status.DEADLINE_EXCEEDED ||
+                  err.code === grpc.status.INTERNAL);
+            } finally {
+              callback(err, value);
+              done();
+            }
+          }, null, {parent: parent, propagate_flags: deadline_flags});
+        };
+        proxy.addProtoService(test_service, proxy_impl);
+        var proxy_port = proxy.bind('localhost:0', server_insecure_creds);
+        proxy.start();
+        var proxy_client = new Client('localhost:' + proxy_port,
+                                      grpc.Credentials.createInsecure());
+        var deadline = new Date();
+        deadline.setSeconds(deadline.getSeconds() + 1);
+        proxy_client.clientStream(function(err, value) {
+          done();
+        }, null, {deadline: deadline});
+      });
+      it('With a bidi stream call', function(done) {
+        done = multiDone(done, 2);
+        proxy_impl.bidiStream = function(parent) {
+          var child = client.bidiStream(
+              null, {parent: parent, propagate_flags: deadline_flags});
+          child.on('error', function(err) {
+            assert(err);
+            assert(err.code === grpc.status.DEADLINE_EXCEEDED ||
+                err.code === grpc.status.INTERNAL);
+            done();
+          });
+        };
+        proxy.addProtoService(test_service, proxy_impl);
+        var proxy_port = proxy.bind('localhost:0', server_insecure_creds);
+        proxy.start();
+        var proxy_client = new Client('localhost:' + proxy_port,
+                                      grpc.Credentials.createInsecure());
+        var deadline = new Date();
+        deadline.setSeconds(deadline.getSeconds() + 1);
+        var call = proxy_client.bidiStream(null, {deadline: deadline});
+        call.on('error', function(err) {
+          done();
+        });
+      });
+    });
+  });
 });
 describe('Cancelling surface client', function() {
   var client;
diff --git a/src/objective-c/tests/GRPCClientTests.m b/src/objective-c/tests/GRPCClientTests.m
index 06581e7599a229fa63e497ef1d5ed97020dfb90f..09a55e07045e8a39a3a3bea52361bf3b7a3e77ec 100644
--- a/src/objective-c/tests/GRPCClientTests.m
+++ b/src/objective-c/tests/GRPCClientTests.m
@@ -53,6 +53,37 @@ static ProtoMethod *kInexistentMethod;
 static ProtoMethod *kEmptyCallMethod;
 static ProtoMethod *kUnaryCallMethod;
 
+// This is an observer class for testing that responseMetadata is KVO-compliant
+
+@interface PassthroughObserver : NSObject
+
+- (instancetype) initWithCallback:(void (^)(NSString*, id, NSDictionary*))callback;
+
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change
+                       context:(void *)context;
+@end
+
+@implementation PassthroughObserver {
+  void (^_callback)(NSString*, id, NSDictionary*);
+}
+
+- (instancetype)initWithCallback:(void (^)(NSString *, id, NSDictionary *))callback {
+  self = [super init];
+  if (self) {
+    _callback = callback;
+  }
+  return self;
+  
+}
+
+- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
+{
+  _callback(keyPath, object, change);
+  [object removeObserver:self forKeyPath:keyPath];
+}
+
+@end
+
 @interface GRPCClientTests : XCTestCase
 @end
 
@@ -183,4 +214,35 @@ static ProtoMethod *kUnaryCallMethod;
   [self waitForExpectationsWithTimeout:4 handler:nil];
 }
 
+- (void)testResponseMetadataKVO {
+  __weak XCTestExpectation *response = [self expectationWithDescription:@"Empty response received."];
+  __weak XCTestExpectation *completion = [self expectationWithDescription:@"Empty RPC completed."];
+  __weak XCTestExpectation *metadata = [self expectationWithDescription:@"Metadata changed."];
+  
+  GRPCCall *call = [[GRPCCall alloc] initWithHost:kHostAddress
+                                             path:kEmptyCallMethod.HTTPPath
+                                   requestsWriter:[GRXWriter writerWithValue:[NSData data]]];
+  
+  PassthroughObserver *observer = [[PassthroughObserver alloc] initWithCallback:^(NSString *keypath, id object, NSDictionary * change) {
+    if ([keypath isEqual: @"responseHeaders"]) {
+      [metadata fulfill];
+    }
+  }];
+  
+  [call addObserver:observer forKeyPath:@"responseHeaders" options:0 context:NULL];
+  
+  id<GRXWriteable> responsesWriteable = [[GRXWriteable alloc] initWithValueHandler:^(NSData *value) {
+    XCTAssertNotNil(value, @"nil value received as response.");
+    XCTAssertEqual([value length], 0, @"Non-empty response received: %@", value);
+    [response fulfill];
+  } completionHandler:^(NSError *errorOrNil) {
+    XCTAssertNil(errorOrNil, @"Finished with unexpected error: %@", errorOrNil);
+    [completion fulfill];
+  }];
+  
+  [call startWithWriteable:responsesWriteable];
+  
+  [self waitForExpectationsWithTimeout:8 handler:nil];
+}
+
 @end
diff --git a/src/php/README.md b/src/php/README.md
index 1804606e0911cce022a4d3e1a6fca6b5967ff79d..f432935fde3b51e81b2787ec8cf0623ddb07ca49 100644
--- a/src/php/README.md
+++ b/src/php/README.md
@@ -7,17 +7,17 @@ This directory contains source code for PHP implementation of gRPC layered on sh
 
 Alpha : Ready for early adopters
 
-## ENVIRONMENT
+## Environment
 
 Prerequisite: PHP 5.5 or later, `phpunit`, `pecl`
 
-Linux:
+**Linux:**
 
 ```sh
 $ sudo apt-get install php5 php5-dev phpunit php-pear
 ```
 
-OS X:
+**Mac OS X:**
 
 ```sh
 $ curl https://phar.phpunit.de/phpunit.phar -o phpunit.phar
@@ -28,10 +28,39 @@ $ curl -O http://pear.php.net/go-pear.phar
 $ sudo php -d detect_unicode=0 go-pear.phar
 ```
 
-## Build from Homebrew
+## Quick Install
 
-On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][]. Run the following command to
-install gRPC.
+**Linux (Debian):**
+
+Add [Debian unstable][] to your `sources.list` file. Example:
+
+```sh
+echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" | \
+sudo tee -a /etc/apt/sources.list
+```
+
+Install the gRPC Debian package
+
+```sh
+sudo apt-get update
+sudo apt-get install libgrpc-dev
+```
+
+Install the gRPC PHP extension
+
+```sh
+sudo pecl install grpc-alpha
+```
+
+**Mac OS X:**
+
+Install [homebrew][]. Example:
+
+```sh
+ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
+```
+
+Install the gRPC core library and the PHP extension in one step
 
 ```sh
 $ curl -fsSL https://goo.gl/getgrpc | bash -s php
@@ -39,6 +68,7 @@ $ curl -fsSL https://goo.gl/getgrpc | bash -s php
 
 This will download and run the [gRPC install script][] and compile the gRPC PHP extension.
 
+
 ## Build from Source
 
 Clone this repository
@@ -71,7 +101,7 @@ $ sudo make install
 Install the gRPC PHP extension
 
 ```sh
-$ sudo pecl install grpc
+$ sudo pecl install grpc-alpha
 ```
 
 OR
@@ -140,6 +170,6 @@ $ ./bin/run_gen_code_test.sh
 ```
 
 [homebrew]:http://brew.sh
-[linuxbrew]:https://github.com/Homebrew/linuxbrew#installation
 [gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
 [Node]:https://github.com/grpc/grpc/tree/master/src/node/examples
+[Debian unstable]:https://www.debian.org/releases/sid/
diff --git a/src/php/ext/grpc/call.c b/src/php/ext/grpc/call.c
index 1cf766c31204762b4386e32e62430c07f5f34c83..252623d0c30977c70f0495c5e70821ed56bebb4b 100644
--- a/src/php/ext/grpc/call.c
+++ b/src/php/ext/grpc/call.c
@@ -216,13 +216,18 @@ PHP_METHOD(Call, __construct) {
   char *method;
   int method_len;
   zval *deadline_obj;
-  /* "OsO" == 1 Object, 1 string, 1 Object */
-  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "OsO", &channel_obj,
-                            grpc_ce_channel, &method, &method_len,
-                            &deadline_obj, grpc_ce_timeval) == FAILURE) {
+  char *host_override = NULL;
+  int host_override_len = 0;
+  /* "OsO|s" == 1 Object, 1 string, 1 Object, 1 optional string */
+  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "OsO|s",
+                            &channel_obj, grpc_ce_channel,
+                            &method, &method_len,
+                            &deadline_obj, grpc_ce_timeval,
+                            &host_override, &host_override_len)
+      == FAILURE) {
     zend_throw_exception(
         spl_ce_InvalidArgumentException,
-        "Call expects a Channel, a String, and a Timeval",
+        "Call expects a Channel, a String, a Timeval and an optional String",
         1 TSRMLS_CC);
     return;
   }
@@ -241,7 +246,7 @@ PHP_METHOD(Call, __construct) {
           deadline_obj TSRMLS_CC);
   call->wrapped = grpc_channel_create_call(
       channel->wrapped, NULL, GRPC_PROPAGATE_DEFAULTS, completion_queue, method,
-      channel->target, deadline->wrapped, NULL);
+      host_override, deadline->wrapped, NULL);
 }
 
 /**
@@ -273,7 +278,6 @@ PHP_METHOD(Call, startBatch) {
   grpc_byte_buffer *message;
   int cancelled;
   grpc_call_error error;
-  grpc_event event;
   zval *result;
   char *message_str;
   size_t message_len;
@@ -398,6 +402,7 @@ PHP_METHOD(Call, startBatch) {
     }
     ops[op_num].op = (grpc_op_type)index;
     ops[op_num].flags = 0;
+    ops[op_num].reserved = NULL;
     op_num++;
   }
   error = grpc_call_start_batch(call->wrapped, ops, op_num, call->wrapped,
@@ -408,14 +413,8 @@ PHP_METHOD(Call, startBatch) {
                          (long)error TSRMLS_CC);
     goto cleanup;
   }
-  event = grpc_completion_queue_pluck(completion_queue, call->wrapped,
-                                      gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
-  if (!event.success) {
-    zend_throw_exception(spl_ce_LogicException,
-                         "The batch failed for some reason",
-                         1 TSRMLS_CC);
-    goto cleanup;
-  }
+  grpc_completion_queue_pluck(completion_queue, call->wrapped,
+                              gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
   for (int i = 0; i < op_num; i++) {
     switch(ops[i].op) {
       case GRPC_OP_SEND_INITIAL_METADATA:
diff --git a/src/php/ext/grpc/channel.c b/src/php/ext/grpc/channel.c
index f8ce04d90230c8c3c6cd50a6cbc7e818f3557f9e..7a981675de5a0a158fc466dd89f0f4cf4b98a01a 100644
--- a/src/php/ext/grpc/channel.c
+++ b/src/php/ext/grpc/channel.c
@@ -64,7 +64,6 @@ void free_wrapped_grpc_channel(void *object TSRMLS_DC) {
   if (channel->wrapped != NULL) {
     grpc_channel_destroy(channel->wrapped);
   }
-  efree(channel->target);
   efree(channel);
 }
 
@@ -141,9 +140,6 @@ PHP_METHOD(Channel, __construct) {
   HashTable *array_hash;
   zval **creds_obj = NULL;
   wrapped_grpc_credentials *creds = NULL;
-  zval **override_obj;
-  char *override;
-  int override_len;
   /* "s|a" == 1 string, 1 optional array */
   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|a", &target,
                             &target_length, &args_array) == FAILURE) {
@@ -151,8 +147,6 @@ PHP_METHOD(Channel, __construct) {
                          "Channel expects a string and an array", 1 TSRMLS_CC);
     return;
   }
-  override = target;
-  override_len = target_length;
   if (args_array == NULL) {
     channel->wrapped = grpc_insecure_channel_create(target, NULL, NULL);
   } else {
@@ -169,19 +163,6 @@ PHP_METHOD(Channel, __construct) {
           *creds_obj TSRMLS_CC);
       zend_hash_del(array_hash, "credentials", 12);
     }
-    if (zend_hash_find(array_hash, GRPC_SSL_TARGET_NAME_OVERRIDE_ARG,
-                       sizeof(GRPC_SSL_TARGET_NAME_OVERRIDE_ARG),
-                       (void **)&override_obj) == SUCCESS) {
-      if (Z_TYPE_PP(override_obj) != IS_STRING) {
-        zend_throw_exception(spl_ce_InvalidArgumentException,
-                             GRPC_SSL_TARGET_NAME_OVERRIDE_ARG
-                             " must be a string",
-                             1 TSRMLS_CC);
-        return;
-      }
-      override = Z_STRVAL_PP(override_obj);
-      override_len = Z_STRLEN_PP(override_obj);
-    }
     php_grpc_read_args_array(args_array, &args);
     if (creds == NULL) {
       channel->wrapped = grpc_insecure_channel_create(target, &args, NULL);
@@ -192,8 +173,6 @@ PHP_METHOD(Channel, __construct) {
     }
     efree(args.args);
   }
-  channel->target = ecalloc(override_len + 1, sizeof(char));
-  memcpy(channel->target, override, override_len);
 }
 
 /**
diff --git a/src/php/ext/grpc/channel.h b/src/php/ext/grpc/channel.h
index c13fa4c6d7dfe8d51e84f6c712b19afdf520c04c..78a16ed0c9d5bab404de0cef56058c16a7ce8260 100755
--- a/src/php/ext/grpc/channel.h
+++ b/src/php/ext/grpc/channel.h
@@ -53,7 +53,6 @@ typedef struct wrapped_grpc_channel {
   zend_object std;
 
   grpc_channel *wrapped;
-  char *target;
 } wrapped_grpc_channel;
 
 /* Initializes the Channel class */
diff --git a/src/php/lib/Grpc/BaseStub.php b/src/php/lib/Grpc/BaseStub.php
index 9d6a77b85536689794271f3450a8f87ae1a79df6..2e980c5eed65a1046d27fefa498e5a019f48c5bc 100755
--- a/src/php/lib/Grpc/BaseStub.php
+++ b/src/php/lib/Grpc/BaseStub.php
@@ -110,10 +110,10 @@ class BaseStub {
   }
 
   private function _checkConnectivityState($new_state) {
-    if ($new_state == Grpc\CHANNEL_READY) {
+    if ($new_state == \Grpc\CHANNEL_READY) {
       return true;
     }
-    if ($new_state == Grpc\CHANNEL_FATAL_ERROR) {
+    if ($new_state == \Grpc\CHANNEL_FATAL_FAILURE) {
       throw new Exception('Failed to connect to server');
     }
     return false;
diff --git a/src/php/tests/generated_code/AbstractGeneratedCodeTest.php b/src/php/tests/generated_code/AbstractGeneratedCodeTest.php
index 8b7e67f57c25ffdbea4b1cec39e21ec6d1d33ed6..287621d93032b03c1207fe4dd01ac9ac215ba4a4 100644
--- a/src/php/tests/generated_code/AbstractGeneratedCodeTest.php
+++ b/src/php/tests/generated_code/AbstractGeneratedCodeTest.php
@@ -39,6 +39,14 @@ abstract class AbstractGeneratedCodeTest extends PHPUnit_Framework_TestCase {
   protected static $client;
   protected static $timeout;
 
+  public function testWaitForNotReady() {
+    $this->assertFalse(self::$client->waitForReady(1));
+  }
+
+  public function testWaitForReady() {
+    $this->assertTrue(self::$client->waitForReady(250000));
+  }
+
   public function testSimpleRequest() {
     $div_arg = new math\DivArgs();
     $div_arg->setDividend(7);
diff --git a/src/php/tests/generated_code/GeneratedCodeTest.php b/src/php/tests/generated_code/GeneratedCodeTest.php
index 1e4742fc8009c5a599d8dded588b7d6bd76c10b6..a1a2ce81dbfebab8bba06c3ed17614b9365342c8 100755
--- a/src/php/tests/generated_code/GeneratedCodeTest.php
+++ b/src/php/tests/generated_code/GeneratedCodeTest.php
@@ -35,7 +35,7 @@ require 'AbstractGeneratedCodeTest.php';
 
 class GeneratedCodeTest extends AbstractGeneratedCodeTest {
   public static function setUpBeforeClass() {
-    self::$client = new math\MathClient(new Grpc\BaseStub(
-        getenv('GRPC_TEST_HOST'), []));
+    self::$client = new math\MathClient(
+        getenv('GRPC_TEST_HOST'), []);
   }
 }
diff --git a/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php b/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php
index f8ec1e7da8864a0214007bd075c8de63a28c6213..68f57d34ad7fc9dc1f462179f425612aabf3d192 100644
--- a/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php
+++ b/src/php/tests/generated_code/GeneratedCodeWithCallbackTest.php
@@ -35,13 +35,13 @@ require 'AbstractGeneratedCodeTest.php';
 
 class GeneratedCodeWithCallbackTest extends AbstractGeneratedCodeTest {
   public static function setUpBeforeClass() {
-    self::$client = new math\MathClient(new Grpc\BaseStub(
+    self::$client = new math\MathClient(
         getenv('GRPC_TEST_HOST'), ['update_metadata' =>
                                    function($a_hash,
                                             $client = array()) {
                                      $a_copy = $a_hash;
                                      $a_copy['foo'] = ['bar'];
                                      return $a_copy;
-                                   }]));
+                                   }]);
   }
 }
diff --git a/src/php/tests/interop/interop_client.php b/src/php/tests/interop/interop_client.php
index 44e6242c299e54d079ae17ae4d3bff32fffc4332..376d306da03cab046891980988bdb30afac3c7fd 100755
--- a/src/php/tests/interop/interop_client.php
+++ b/src/php/tests/interop/interop_client.php
@@ -271,7 +271,7 @@ function cancelAfterFirstResponse($stub) {
 }
 
 function timeoutOnSleepingServer($stub) {
-  $call = $stub->FullDuplexCall(array('timeout' => 500000));
+  $call = $stub->FullDuplexCall(array('timeout' => 1000));
   $request = new grpc\testing\StreamingOutputCallRequest();
   $request->setResponseType(grpc\testing\PayloadType::COMPRESSABLE);
   $response_parameters = new grpc\testing\ResponseParameters();
diff --git a/src/php/tests/unit_tests/SecureEndToEndTest.php b/src/php/tests/unit_tests/SecureEndToEndTest.php
index f91c006da5e366961bdd7e01ecd9f4dc8c64e094..60341b983db59e80bd84ed02a98579e60d88285f 100755
--- a/src/php/tests/unit_tests/SecureEndToEndTest.php
+++ b/src/php/tests/unit_tests/SecureEndToEndTest.php
@@ -40,13 +40,15 @@ class SecureEndToEndTest extends PHPUnit_Framework_TestCase{
         file_get_contents(dirname(__FILE__) . '/../data/server1.key'),
         file_get_contents(dirname(__FILE__) . '/../data/server1.pem'));
     $this->server = new Grpc\Server();
-    $port = $this->server->addSecureHttp2Port('0.0.0.0:0',
+    $this->port = $this->server->addSecureHttp2Port('0.0.0.0:0',
                                               $server_credentials);
     $this->server->start();
+    $this->host_override = 'foo.test.google.fr';
     $this->channel = new Grpc\Channel(
-        'localhost:' . $port,
+        'localhost:' . $this->port,
         [
-            'grpc.ssl_target_name_override' => 'foo.test.google.fr',
+            'grpc.ssl_target_name_override' => $this->host_override,
+            'grpc.default_authority' => $this->host_override,
             'credentials' => $credentials
          ]);
   }
@@ -61,7 +63,8 @@ class SecureEndToEndTest extends PHPUnit_Framework_TestCase{
     $status_text = 'xyz';
     $call = new Grpc\Call($this->channel,
                           'dummy_method',
-                          $deadline);
+                          $deadline,
+                          $this->host_override);
 
     $event = $call->startBatch([
         Grpc\OP_SEND_INITIAL_METADATA => [],
@@ -112,7 +115,8 @@ class SecureEndToEndTest extends PHPUnit_Framework_TestCase{
 
     $call = new Grpc\Call($this->channel,
                           'dummy_method',
-                          $deadline);
+                          $deadline,
+                          $this->host_override);
 
     $event = $call->startBatch([
         Grpc\OP_SEND_INITIAL_METADATA => [],
diff --git a/src/python/README.md b/src/python/README.md
index 2beb3a913a986c849e96cf2c39e0683cf36e44bf..de0142db05e1f97c0216651b0fa4d0af4c51dd26 100644
--- a/src/python/README.md
+++ b/src/python/README.md
@@ -9,12 +9,36 @@ Alpha : Ready for early adopters
 PREREQUISITES
 -------------
 - Python 2.7, virtualenv, pip
-- [homebrew][] on Mac OS X, [linuxbrew][] on Linux.  These simplify the installation of the gRPC C core.
+- [homebrew][] on Mac OS X.  These simplify the installation of the gRPC C core.
 
 INSTALLATION
 -------------
-On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][].
-Run the following command to install gRPC Python.
+
+**Linux (Debian):**
+
+Add [Debian unstable][] to your `sources.list` file. Example:
+
+```sh
+echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" | \
+sudo tee -a /etc/apt/sources.list
+```
+
+Install the gRPC Debian package
+
+```sh
+sudo apt-get update
+sudo apt-get install libgrpc-dev
+```
+
+Install the gRPC Python module
+
+```sh
+sudo pip install grpcio
+```
+
+**Mac OS X**
+
+Install [homebrew][]. Run the following command to install gRPC Python.
 ```sh
 $ curl -fsSL https://goo.gl/getgrpc | bash -s python
 ```
@@ -27,11 +51,6 @@ Please read our online documentation for a [Quick Start][] and a [detailed examp
 BUILDING FROM SOURCE
 ---------------------
 - Clone this repository
-- Build the gRPC core from the root of the
-  [gRPC Git repository](https://github.com/grpc/grpc)
-```
-$ make shared_c static_c
-```
 
 - Use build_python.sh to build the Python code and install it into a virtual environment
 ```
@@ -60,7 +79,7 @@ $ ../../tools/distrib/python/submit.py
 ```
 
 [homebrew]:http://brew.sh
-[linuxbrew]:https://github.com/Homebrew/linuxbrew#installation
 [gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
 [Quick Start]:http://www.grpc.io/docs/tutorials/basic/python.html
 [detailed example]:http://www.grpc.io/docs/installation/python.html
+[Debian unstable]:https://www.debian.org/releases/sid/
diff --git a/src/python/grpcio/README.rst b/src/python/grpcio/README.rst
index 00bdecf56ffa1e4d18ee5f1d9d62e8c2bb37681b..c7b5a3bde430fd0f6f24bb2a33eefcfdab244159 100644
--- a/src/python/grpcio/README.rst
+++ b/src/python/grpcio/README.rst
@@ -6,7 +6,7 @@ Package for GRPC Python.
 Dependencies
 ------------
 
-Ensure you have installed the gRPC core.  On Mac OS X, install homebrew_. On Linux, install linuxbrew_.
+Ensure you have installed the gRPC core.  On Mac OS X, install homebrew_.
 Run the following command to install gRPC Python.
 
 ::
@@ -19,5 +19,4 @@ Otherwise, `install from source`_
 
 .. _`install from source`: https://github.com/grpc/grpc/blob/master/src/python/README.md#building-from-source
 .. _homebrew: http://brew.sh
-.. _linuxbrew: https://github.com/Homebrew/linuxbrew#installation
 .. _`gRPC install script`: https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
diff --git a/src/python/grpcio/grpc/_adapter/_c/types.h b/src/python/grpcio/grpc/_adapter/_c/types.h
index f646465c63377b436d6f89d4c72a6b1cf988f126..f6ff957baa69481e92ed409282ca3ca6c67c374f 100644
--- a/src/python/grpcio/grpc/_adapter/_c/types.h
+++ b/src/python/grpcio/grpc/_adapter/_c/types.h
@@ -146,6 +146,7 @@ typedef struct Server {
   PyObject_HEAD
   grpc_server *c_serv;
   CompletionQueue *cq;
+  int shutdown_called;
 } Server;
 Server *pygrpc_Server_new(PyTypeObject *type, PyObject *args, PyObject *kwargs);
 void pygrpc_Server_dealloc(Server *self);
@@ -156,6 +157,7 @@ PyObject *pygrpc_Server_add_http2_port(
 PyObject *pygrpc_Server_start(Server *self, PyObject *ignored);
 PyObject *pygrpc_Server_shutdown(
     Server *self, PyObject *args, PyObject *kwargs);
+PyObject *pygrpc_Server_cancel_all_calls(Server *self, PyObject *unused);
 extern PyTypeObject pygrpc_Server_type;
 
 /*=========*/
diff --git a/src/python/grpcio/grpc/_adapter/_c/types/server.c b/src/python/grpcio/grpc/_adapter/_c/types/server.c
index 15c98f28eb5d8cc2a519294a1243e73410662174..8feab8aab15d0b969f8abdbf5d26993dea41244f 100644
--- a/src/python/grpcio/grpc/_adapter/_c/types/server.c
+++ b/src/python/grpcio/grpc/_adapter/_c/types/server.c
@@ -45,6 +45,8 @@ PyMethodDef pygrpc_Server_methods[] = {
      METH_KEYWORDS, ""},
     {"start", (PyCFunction)pygrpc_Server_start, METH_NOARGS, ""},
     {"shutdown", (PyCFunction)pygrpc_Server_shutdown, METH_KEYWORDS, ""},
+    {"cancel_all_calls", (PyCFunction)pygrpc_Server_cancel_all_calls,
+     METH_NOARGS, ""},
     {NULL}
 };
 const char pygrpc_Server_doc[] = "See grpc._adapter._types.Server.";
@@ -109,6 +111,7 @@ Server *pygrpc_Server_new(PyTypeObject *type, PyObject *args, PyObject *kwargs)
   pygrpc_discard_channel_args(c_args);
   self->cq = cq;
   Py_INCREF(self->cq);
+  self->shutdown_called = 0;
   return self;
 }
 
@@ -163,6 +166,7 @@ PyObject *pygrpc_Server_add_http2_port(
 
 PyObject *pygrpc_Server_start(Server *self, PyObject *ignored) {
   grpc_server_start(self->c_serv);
+  self->shutdown_called = 0;
   Py_RETURN_NONE;
 }
 
@@ -176,5 +180,17 @@ PyObject *pygrpc_Server_shutdown(
   }
   tag = pygrpc_produce_server_shutdown_tag(user_tag);
   grpc_server_shutdown_and_notify(self->c_serv, self->cq->c_cq, tag);
+  self->shutdown_called = 1;
+  Py_RETURN_NONE;
+}
+
+PyObject *pygrpc_Server_cancel_all_calls(Server *self, PyObject *unused) {
+  if (!self->shutdown_called) {
+    PyErr_SetString(
+        PyExc_RuntimeError,
+        "shutdown must have been called prior to calling cancel_all_calls!");
+    return NULL;
+  }
+  grpc_server_cancel_all_calls(self->c_serv);
   Py_RETURN_NONE;
 }
diff --git a/src/python/grpcio/grpc/_adapter/_c/utility.c b/src/python/grpcio/grpc/_adapter/_c/utility.c
index 2eea0e18efe8d8596f5d346bd8e74e1692463c29..590f7e013a20207b0b8b9319239c09d2c7dc97a7 100644
--- a/src/python/grpcio/grpc/_adapter/_c/utility.c
+++ b/src/python/grpcio/grpc/_adapter/_c/utility.c
@@ -184,6 +184,7 @@ int pygrpc_produce_op(PyObject *op, grpc_op *result) {
     return 0;
   }
   c_op.op = type;
+  c_op.reserved = NULL;
   c_op.flags = PyInt_AsLong(PyTuple_GET_ITEM(op, WRITE_FLAGS_INDEX));
   if (PyErr_Occurred()) {
     return 0;
diff --git a/src/python/grpcio/grpc/_adapter/_low.py b/src/python/grpcio/grpc/_adapter/_low.py
index 147086e72540bbbb18d10087b590567476687487..3859ebb0e246fccade669ca0f2405dbcd9ca4704 100644
--- a/src/python/grpcio/grpc/_adapter/_low.py
+++ b/src/python/grpcio/grpc/_adapter/_low.py
@@ -124,3 +124,6 @@ class Server(_types.Server):
 
   def request_call(self, completion_queue, tag):
     return self.server.request_call(completion_queue.completion_queue, tag)
+
+  def cancel_all_calls(self):
+    return self.server.cancel_all_calls()
diff --git a/src/python/grpcio/grpc/_links/invocation.py b/src/python/grpcio/grpc/_links/invocation.py
index 0058ae91f877998b26cda3453c8742c069b40ba5..ee3d72fdbc888e0d1c88cc62c90685ff6c74ac8e 100644
--- a/src/python/grpcio/grpc/_links/invocation.py
+++ b/src/python/grpcio/grpc/_links/invocation.py
@@ -101,7 +101,7 @@ class _Kernel(object):
     else:
       ticket = links.Ticket(
           operation_id, rpc_state.sequence_number, None, None, None, None, 1,
-          None, None, None, None, None, None)
+          None, None, None, None, None, None, None)
       rpc_state.sequence_number += 1
       self._relay.add_value(ticket)
       rpc_state.low_write = _LowWrite.OPEN
@@ -118,7 +118,7 @@ class _Kernel(object):
       ticket = links.Ticket(
           operation_id, rpc_state.sequence_number, None, None, None, None, None,
           None, rpc_state.response_deserializer(event.bytes), None, None, None,
-          None)
+          None, None)
       rpc_state.sequence_number += 1
       self._relay.add_value(ticket)
 
@@ -129,7 +129,7 @@ class _Kernel(object):
     ticket = links.Ticket(
         operation_id, rpc_state.sequence_number, None, None,
         links.Ticket.Subscription.FULL, None, None, event.metadata, None, None,
-        None, None, None)
+        None, None, None, None)
     rpc_state.sequence_number += 1
     self._relay.add_value(ticket)
 
@@ -141,12 +141,14 @@ class _Kernel(object):
       termination = links.Ticket.Termination.CANCELLATION
     elif event.status.code is _intermediary_low.Code.DEADLINE_EXCEEDED:
       termination = links.Ticket.Termination.EXPIRATION
+    elif event.status.code is _intermediary_low.Code.UNKNOWN:
+      termination = links.Ticket.Termination.LOCAL_FAILURE
     else:
       termination = links.Ticket.Termination.TRANSMISSION_FAILURE
     ticket = links.Ticket(
         operation_id, rpc_state.sequence_number, None, None, None, None, None,
         None, None, event.metadata, event.status.code, event.status.details,
-        termination)
+        termination, None)
     rpc_state.sequence_number += 1
     self._relay.add_value(ticket)
 
@@ -349,7 +351,7 @@ def invocation_link(channel, host, request_serializers, response_deserializers):
   """Creates an InvocationLink.
 
   Args:
-    channel: A channel for use by the link.
+    channel: An _intermediary_low.Channel for use by the link.
     host: The host to specify when invoking RPCs.
     request_serializers: A dict from group-method pair to request object
       serialization behavior.
diff --git a/src/python/grpcio/grpc/_links/service.py b/src/python/grpcio/grpc/_links/service.py
index 5c636d61abc010a0844ba561fb0ad30a47a40922..43c4c0e80cac7d7f3814047b0cfe37bc3e983bfe 100644
--- a/src/python/grpcio/grpc/_links/service.py
+++ b/src/python/grpcio/grpc/_links/service.py
@@ -40,6 +40,19 @@ from grpc.framework.foundation import logging_pool
 from grpc.framework.foundation import relay
 from grpc.framework.interfaces.links import links
 
+_TERMINATION_KIND_TO_CODE = {
+    links.Ticket.Termination.COMPLETION: _intermediary_low.Code.OK,
+    links.Ticket.Termination.CANCELLATION: _intermediary_low.Code.CANCELLED,
+    links.Ticket.Termination.EXPIRATION:
+        _intermediary_low.Code.DEADLINE_EXCEEDED,
+    links.Ticket.Termination.SHUTDOWN: _intermediary_low.Code.UNAVAILABLE,
+    links.Ticket.Termination.RECEPTION_FAILURE: _intermediary_low.Code.INTERNAL,
+    links.Ticket.Termination.TRANSMISSION_FAILURE:
+        _intermediary_low.Code.INTERNAL,
+    links.Ticket.Termination.LOCAL_FAILURE: _intermediary_low.Code.UNKNOWN,
+    links.Ticket.Termination.REMOTE_FAILURE: _intermediary_low.Code.UNKNOWN,
+}
+
 
 @enum.unique
 class _Read(enum.Enum):
@@ -93,6 +106,15 @@ def _metadatafy(call, metadata):
     call.add_metadata(metadata_key, metadata_value)
 
 
+def _status(termination_kind, code, details):
+  effective_details = b'' if details is None else details
+  if code is None:
+    effective_code = _TERMINATION_KIND_TO_CODE[termination_kind]
+  else:
+    effective_code = code
+  return _intermediary_low.Status(effective_code, effective_details)
+
+
 class _Kernel(object):
 
   def __init__(self, request_deserializers, response_serializers, ticket_relay):
@@ -131,7 +153,7 @@ class _Kernel(object):
     ticket = links.Ticket(
         call, 0, group, method, links.Ticket.Subscription.FULL,
         service_acceptance.deadline - time.time(), None, event.metadata, None,
-        None, None, None, None)
+        None, None, None, None, 'TODO: Service Context Object!')
     self._relay.add_value(ticket)
 
   def _on_read_event(self, event):
@@ -157,7 +179,7 @@ class _Kernel(object):
         # rpc_state.read = _Read.AWAITING_ALLOWANCE
     ticket = links.Ticket(
         call, rpc_state.sequence_number, None, None, None, None, None, None,
-        payload, None, None, None, termination)
+        payload, None, None, None, termination, None)
     rpc_state.sequence_number += 1
     self._relay.add_value(ticket)
 
@@ -170,13 +192,15 @@ class _Kernel(object):
     if rpc_state.high_write is _HighWrite.CLOSED:
       if rpc_state.terminal_metadata is not None:
         _metadatafy(call, rpc_state.terminal_metadata)
-      call.status(
-          _intermediary_low.Status(rpc_state.code, rpc_state.message), call)
+      status = _status(
+          links.Ticket.Termination.COMPLETION, rpc_state.code,
+          rpc_state.message)
+      call.status(status, call)
       rpc_state.low_write = _LowWrite.CLOSED
     else:
       ticket = links.Ticket(
           call, rpc_state.sequence_number, None, None, None, None, 1, None,
-          None, None, None, None, None)
+          None, None, None, None, None, None)
       rpc_state.sequence_number += 1
       self._relay.add_value(ticket)
       rpc_state.low_write = _LowWrite.OPEN
@@ -198,7 +222,7 @@ class _Kernel(object):
       termination = links.Ticket.Termination.TRANSMISSION_FAILURE
     ticket = links.Ticket(
         call, rpc_state.sequence_number, None, None, None, None, None, None,
-        None, None, None, None, termination)
+        None, None, None, None, termination, None)
     rpc_state.sequence_number += 1
     self._relay.add_value(ticket)
 
@@ -239,7 +263,7 @@ class _Kernel(object):
       elif not rpc_state.premetadataed:
         if (ticket.terminal_metadata is not None or
             ticket.payload is not None or
-            ticket.termination is links.Ticket.Termination.COMPLETION or
+            ticket.termination is not None or
             ticket.code is not None or
             ticket.message is not None):
           call.premetadata()
@@ -257,11 +281,11 @@ class _Kernel(object):
             termination = None
           else:
             termination = links.Ticket.Termination.COMPLETION
-          ticket = links.Ticket(
+          early_read_ticket = links.Ticket(
               call, rpc_state.sequence_number, None, None, None, None, None,
-              None, payload, None, None, None, termination)
+              None, payload, None, None, None, termination, None)
           rpc_state.sequence_number += 1
-          self._relay.add_value(ticket)
+          self._relay.add_value(early_read_ticket)
 
       if ticket.payload is not None:
         call.write(rpc_state.response_serializer(ticket.payload), call)
@@ -279,14 +303,17 @@ class _Kernel(object):
         if rpc_state.low_write is _LowWrite.OPEN:
           if rpc_state.terminal_metadata is not None:
             _metadatafy(call, rpc_state.terminal_metadata)
-          status = _intermediary_low.Status(
-              _intermediary_low.Code.OK
-              if rpc_state.code is None else rpc_state.code,
-              '' if rpc_state.message is None else rpc_state.message)
+          status = _status(
+              links.Ticket.Termination.COMPLETION, rpc_state.code,
+              rpc_state.message)
           call.status(status, call)
           rpc_state.low_write = _LowWrite.CLOSED
       elif ticket.termination is not None:
-        call.cancel()
+        if rpc_state.terminal_metadata is not None:
+          _metadatafy(call, rpc_state.terminal_metadata)
+        status = _status(
+            ticket.termination, rpc_state.code, rpc_state.message)
+        call.status(status, call)
         self._rpc_states.pop(call, None)
 
   def add_port(self, port, server_credentials):
diff --git a/src/python/grpcio/grpc/early_adopter/implementations.py b/src/python/grpcio/grpc/early_adopter/implementations.py
index 10919fae69f6fe914dcaed0a3a0c7d43ebe91666..9c396aa7ad08f85c39cf7e787a12cf9de3eadf2f 100644
--- a/src/python/grpcio/grpc/early_adopter/implementations.py
+++ b/src/python/grpcio/grpc/early_adopter/implementations.py
@@ -41,13 +41,15 @@ from grpc.framework.base import util as _base_utilities
 from grpc.framework.face import implementations as _face_implementations
 from grpc.framework.foundation import logging_pool
 
-_THREAD_POOL_SIZE = 8
+_DEFAULT_THREAD_POOL_SIZE = 8
 _ONE_DAY_IN_SECONDS = 24 * 60 * 60
 
 
 class _Server(interfaces.Server):
 
-  def __init__(self, breakdown, port, private_key, certificate_chain):
+  def __init__(
+        self, breakdown, port, private_key, certificate_chain,
+        thread_pool_size=_DEFAULT_THREAD_POOL_SIZE):
     self._lock = threading.Lock()
     self._breakdown = breakdown
     self._port = port
@@ -56,6 +58,7 @@ class _Server(interfaces.Server):
     else:
       self._key_chain_pairs = ((private_key, certificate_chain),)
 
+    self._pool_size = thread_pool_size
     self._pool = None
     self._back = None
     self._fore_link = None
@@ -63,7 +66,7 @@ class _Server(interfaces.Server):
   def _start(self):
     with self._lock:
       if self._pool is None:
-        self._pool = logging_pool.pool(_THREAD_POOL_SIZE)
+        self._pool = logging_pool.pool(self._pool_size)
         servicer = _face_implementations.servicer(
             self._pool, self._breakdown.implementations, None)
         self._back = _base_implementations.back_link(
@@ -114,7 +117,8 @@ class _Stub(interfaces.Stub):
 
   def __init__(
       self, breakdown, host, port, secure, root_certificates, private_key,
-      certificate_chain, metadata_transformer=None, server_host_override=None):
+      certificate_chain, metadata_transformer=None, server_host_override=None,
+      thread_pool_size=_DEFAULT_THREAD_POOL_SIZE):
     self._lock = threading.Lock()
     self._breakdown = breakdown
     self._host = host
@@ -126,6 +130,7 @@ class _Stub(interfaces.Stub):
     self._metadata_transformer = metadata_transformer
     self._server_host_override = server_host_override
 
+    self._pool_size = thread_pool_size
     self._pool = None
     self._front = None
     self._rear_link = None
@@ -134,7 +139,7 @@ class _Stub(interfaces.Stub):
   def __enter__(self):
     with self._lock:
       if self._pool is None:
-        self._pool = logging_pool.pool(_THREAD_POOL_SIZE)
+        self._pool = logging_pool.pool(self._pool_size)
         self._front = _base_implementations.front_link(
             self._pool, self._pool, self._pool)
         self._rear_link = _rear.RearLink(
@@ -193,7 +198,7 @@ class _Stub(interfaces.Stub):
 def stub(
     service_name, methods, host, port, metadata_transformer=None, secure=False,
     root_certificates=None, private_key=None, certificate_chain=None,
-    server_host_override=None):
+    server_host_override=None, thread_pool_size=_DEFAULT_THREAD_POOL_SIZE):
   """Constructs an interfaces.Stub.
 
   Args:
@@ -216,6 +221,8 @@ def stub(
       certificate chain should be used.
     server_host_override: (For testing only) the target name used for SSL
       host name checking.
+    thread_pool_size: The maximum number of threads to allow in the backing
+      thread pool.
 
   Returns:
     An interfaces.Stub affording RPC invocation.
@@ -224,11 +231,13 @@ def stub(
   return _Stub(
       breakdown, host, port, secure, root_certificates, private_key,
       certificate_chain, server_host_override=server_host_override,
-      metadata_transformer=metadata_transformer)
+      metadata_transformer=metadata_transformer,
+      thread_pool_size=thread_pool_size)
 
 
 def server(
-    service_name, methods, port, private_key=None, certificate_chain=None):
+    service_name, methods, port, private_key=None, certificate_chain=None,
+    thread_pool_size=_DEFAULT_THREAD_POOL_SIZE):
   """Constructs an interfaces.Server.
 
   Args:
@@ -242,9 +251,12 @@ def server(
     private_key: A pem-encoded private key, or None for an insecure server.
     certificate_chain: A pem-encoded certificate chain, or None for an insecure
       server.
+    thread_pool_size: The maximum number of threads to allow in the backing
+      thread pool.
 
   Returns:
     An interfaces.Server that will serve secure traffic.
   """
   breakdown = _face_utilities.break_down_service(service_name, methods)
-  return _Server(breakdown, port, private_key, certificate_chain)
+  return _Server(breakdown, port, private_key, certificate_chain,
+      thread_pool_size=thread_pool_size)
diff --git a/src/ruby/bin/interop/test/cpp/interop/test.rb b/src/python/grpcio/grpc/framework/core/__init__.py
similarity index 83%
rename from src/ruby/bin/interop/test/cpp/interop/test.rb
rename to src/python/grpcio/grpc/framework/core/__init__.py
index 5948b50eaa5cddae2ce7fac485b3d3db8bc32be5..708651910607ffb686d781713f6893567821b9fd 100644
--- a/src/ruby/bin/interop/test/cpp/interop/test.rb
+++ b/src/python/grpcio/grpc/framework/core/__init__.py
@@ -27,17 +27,4 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: test/cpp/interop/test.proto
 
-require 'google/protobuf'
-
-require 'test/cpp/interop/empty'
-require 'test/cpp/interop/messages'
-Google::Protobuf::DescriptorPool.generated_pool.build do
-end
-
-module Grpc
-  module Testing
-  end
-end
diff --git a/src/python/grpcio/grpc/framework/core/_constants.py b/src/python/grpcio/grpc/framework/core/_constants.py
new file mode 100644
index 0000000000000000000000000000000000000000..d3be3a4c4a5b88b7844350f347f24a5801a3c398
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_constants.py
@@ -0,0 +1,59 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Private constants for the package."""
+
+from grpc.framework.interfaces.base import base
+from grpc.framework.interfaces.links import links
+
+TICKET_SUBSCRIPTION_FOR_BASE_SUBSCRIPTION_KIND = {
+    base.Subscription.Kind.NONE: links.Ticket.Subscription.NONE,
+    base.Subscription.Kind.TERMINATION_ONLY:
+        links.Ticket.Subscription.TERMINATION,
+    base.Subscription.Kind.FULL: links.Ticket.Subscription.FULL,
+    }
+
+# Mapping from abortive operation outcome to ticket termination to be
+# sent to the other side of the operation, or None to indicate that no
+# ticket should be sent to the other side in the event of such an
+# outcome.
+ABORTION_OUTCOME_TO_TICKET_TERMINATION = {
+    base.Outcome.CANCELLED: links.Ticket.Termination.CANCELLATION,
+    base.Outcome.EXPIRED: links.Ticket.Termination.EXPIRATION,
+    base.Outcome.LOCAL_SHUTDOWN: links.Ticket.Termination.SHUTDOWN,
+    base.Outcome.REMOTE_SHUTDOWN: None,
+    base.Outcome.RECEPTION_FAILURE: links.Ticket.Termination.RECEPTION_FAILURE,
+    base.Outcome.TRANSMISSION_FAILURE: None,
+    base.Outcome.LOCAL_FAILURE: links.Ticket.Termination.LOCAL_FAILURE,
+    base.Outcome.REMOTE_FAILURE: links.Ticket.Termination.REMOTE_FAILURE,
+}
+
+INTERNAL_ERROR_LOG_MESSAGE = ':-( RPC Framework (Core) internal error! )-:'
+TERMINATION_CALLBACK_EXCEPTION_LOG_MESSAGE = (
+    'Exception calling termination callback!')
diff --git a/src/python/grpcio/grpc/framework/core/_context.py b/src/python/grpcio/grpc/framework/core/_context.py
new file mode 100644
index 0000000000000000000000000000000000000000..24a12b612e50310c346d4d32413be22c87f29267
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_context.py
@@ -0,0 +1,92 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""State and behavior for operation context."""
+
+import time
+
+# _interfaces is referenced from specification in this module.
+from grpc.framework.core import _interfaces  # pylint: disable=unused-import
+from grpc.framework.interfaces.base import base
+
+
+class OperationContext(base.OperationContext):
+  """An implementation of interfaces.OperationContext."""
+
+  def __init__(
+      self, lock, termination_manager, transmission_manager,
+      expiration_manager):
+    """Constructor.
+
+    Args:
+      lock: The operation-wide lock.
+      termination_manager: The _interfaces.TerminationManager for the operation.
+      transmission_manager: The _interfaces.TransmissionManager for the
+        operation.
+      expiration_manager: The _interfaces.ExpirationManager for the operation.
+    """
+    self._lock = lock
+    self._termination_manager = termination_manager
+    self._transmission_manager = transmission_manager
+    self._expiration_manager = expiration_manager
+
+  def _abort(self, outcome):
+    with self._lock:
+      if self._termination_manager.outcome is None:
+        self._termination_manager.abort(outcome)
+        self._transmission_manager.abort(outcome)
+        self._expiration_manager.terminate()
+
+  def outcome(self):
+    """See base.OperationContext.outcome for specification."""
+    with self._lock:
+      return self._termination_manager.outcome
+
+  def add_termination_callback(self, callback):
+    """See base.OperationContext.add_termination_callback."""
+    with self._lock:
+      if self._termination_manager.outcome is None:
+        self._termination_manager.add_callback(callback)
+        return None
+      else:
+        return self._termination_manager.outcome
+
+  def time_remaining(self):
+    """See base.OperationContext.time_remaining for specification."""
+    with self._lock:
+      deadline = self._expiration_manager.deadline()
+    return max(0.0, deadline - time.time())
+
+  def cancel(self):
+    """See base.OperationContext.cancel for specification."""
+    self._abort(base.Outcome.CANCELLED)
+
+  def fail(self, exception):
+    """See base.OperationContext.fail for specification."""
+    self._abort(base.Outcome.LOCAL_FAILURE)
diff --git a/src/python/grpcio/grpc/framework/core/_emission.py b/src/python/grpcio/grpc/framework/core/_emission.py
new file mode 100644
index 0000000000000000000000000000000000000000..7c702ab2ce01aafc9f13a2ce445cd3ab33bc9491
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_emission.py
@@ -0,0 +1,97 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""State and behavior for handling emitted values."""
+
+from grpc.framework.core import _interfaces
+from grpc.framework.interfaces.base import base
+
+
+class EmissionManager(_interfaces.EmissionManager):
+  """An EmissionManager implementation."""
+
+  def __init__(
+      self, lock, termination_manager, transmission_manager,
+      expiration_manager):
+    """Constructor.
+
+    Args:
+      lock: The operation-wide lock.
+      termination_manager: The _interfaces.TerminationManager for the operation.
+      transmission_manager: The _interfaces.TransmissionManager for the
+        operation.
+      expiration_manager: The _interfaces.ExpirationManager for the operation.
+    """
+    self._lock = lock
+    self._termination_manager = termination_manager
+    self._transmission_manager = transmission_manager
+    self._expiration_manager = expiration_manager
+    self._ingestion_manager = None
+
+    self._initial_metadata_seen = False
+    self._payload_seen = False
+    self._completion_seen = False
+
+  def set_ingestion_manager(self, ingestion_manager):
+    """Sets the ingestion manager with which this manager will cooperate.
+
+    Args:
+      ingestion_manager: The _interfaces.IngestionManager for the operation.
+    """
+    self._ingestion_manager = ingestion_manager
+
+  def advance(
+      self, initial_metadata=None, payload=None, completion=None,
+      allowance=None):
+    initial_metadata_present = initial_metadata is not None
+    payload_present = payload is not None
+    completion_present = completion is not None
+    allowance_present = allowance is not None
+    with self._lock:
+      if self._termination_manager.outcome is None:
+        if (initial_metadata_present and (
+                self._initial_metadata_seen or self._payload_seen or
+                self._completion_seen) or
+            payload_present and self._completion_seen or
+            completion_present and self._completion_seen or
+            allowance_present and allowance <= 0):
+          self._termination_manager.abort(base.Outcome.LOCAL_FAILURE)
+          self._transmission_manager.abort(base.Outcome.LOCAL_FAILURE)
+          self._expiration_manager.terminate()
+        else:
+          self._initial_metadata_seen |= initial_metadata_present
+          self._payload_seen |= payload_present
+          self._completion_seen |= completion_present
+          if completion_present:
+            self._termination_manager.emission_complete()
+            self._ingestion_manager.local_emissions_done()
+          self._transmission_manager.advance(
+              initial_metadata, payload, completion, allowance)
+          if allowance_present:
+            self._ingestion_manager.add_local_allowance(allowance)
diff --git a/src/python/grpcio/grpc/framework/core/_end.py b/src/python/grpcio/grpc/framework/core/_end.py
new file mode 100644
index 0000000000000000000000000000000000000000..fb2c532df6147c917f0705c0189ee8eabf4cece4
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_end.py
@@ -0,0 +1,251 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Implementation of base.End."""
+
+import abc
+import enum
+import threading
+import uuid
+
+from grpc.framework.core import _operation
+from grpc.framework.core import _utilities
+from grpc.framework.foundation import callable_util
+from grpc.framework.foundation import later
+from grpc.framework.foundation import logging_pool
+from grpc.framework.interfaces.base import base
+from grpc.framework.interfaces.links import links
+from grpc.framework.interfaces.links import utilities
+
+_IDLE_ACTION_EXCEPTION_LOG_MESSAGE = 'Exception calling idle action!'
+
+
+class End(base.End, links.Link):
+  """A bridge between base.End and links.Link.
+
+  Implementations of this interface translate arriving tickets into
+  calls on application objects implementing base interfaces and
+  translate calls from application objects implementing base interfaces
+  into tickets sent to a joined link.
+  """
+  __metaclass__ = abc.ABCMeta
+
+
+class _Cycle(object):
+  """State for a single start-stop End lifecycle."""
+
+  def __init__(self, pool):
+    self.pool = pool
+    self.grace = False
+    self.futures = []
+    self.operations = {}
+    self.idle_actions = []
+
+
+def _abort(operations):
+  for operation in operations:
+    operation.abort(base.Outcome.LOCAL_SHUTDOWN)
+
+
+def _cancel_futures(futures):
+  for future in futures:
+    futures.cancel()
+
+
+def _future_shutdown(lock, cycle, event):
+  def in_future():
+    with lock:
+      _abort(cycle.operations.values())
+      _cancel_futures(cycle.futures)
+      pool = cycle.pool
+    cycle.pool.shutdown(wait=True)
+  return in_future
+
+
+def _termination_action(lock, stats, operation_id, cycle):
+  """Constructs the termination action for a single operation.
+
+  Args:
+    lock: A lock to hold during the termination action.
+    states: A mapping from base.Outcome values to integers to increment with
+      the outcome given to the termination action.
+    operation_id: The operation ID for the termination action.
+    cycle: A _Cycle value to be updated during the termination action.
+
+  Returns:
+    A callable that takes an operation outcome as its sole parameter and that
+      should be used as the termination action for the operation associated
+      with the given operation ID.
+  """
+  def termination_action(outcome):
+    with lock:
+      stats[outcome] += 1
+      cycle.operations.pop(operation_id, None)
+      if not cycle.operations:
+        for action in cycle.idle_actions:
+          cycle.pool.submit(action)
+        cycle.idle_actions = []
+        if cycle.grace:
+          _cancel_futures(cycle.futures)
+  return termination_action
+
+
+class _End(End):
+  """An End implementation."""
+
+  def __init__(self, servicer_package):
+    """Constructor.
+
+    Args:
+      servicer_package: A _ServicerPackage for servicing operations or None if
+        this end will not be used to service operations.
+    """
+    self._lock = threading.Condition()
+    self._servicer_package = servicer_package
+
+    self._stats = {outcome: 0 for outcome in base.Outcome}
+
+    self._mate = None
+
+    self._cycle = None
+
+  def start(self):
+    """See base.End.start for specification."""
+    with self._lock:
+      if self._cycle is not None:
+        raise ValueError('Tried to start a not-stopped End!')
+      else:
+        self._cycle = _Cycle(logging_pool.pool(1))
+
+  def stop(self, grace):
+    """See base.End.stop for specification."""
+    with self._lock:
+      if self._cycle is None:
+        event = threading.Event()
+        event.set()
+        return event
+      elif not self._cycle.operations:
+        event = threading.Event()
+        self._cycle.pool.submit(event.set)
+        self._cycle.pool.shutdown(wait=False)
+        self._cycle = None
+        return event
+      else:
+        self._cycle.grace = True
+        event = threading.Event()
+        self._cycle.idle_actions.append(event.set)
+        if 0 < grace:
+          future = later.later(
+              grace, _future_shutdown(self._lock, self._cycle, event))
+          self._cycle.futures.append(future)
+        else:
+          _abort(self._cycle.operations.values())
+        return event
+
+  def operate(
+      self, group, method, subscription, timeout, initial_metadata=None,
+      payload=None, completion=None):
+    """See base.End.operate for specification."""
+    operation_id = uuid.uuid4()
+    with self._lock:
+      if self._cycle is None or self._cycle.grace:
+        raise ValueError('Can\'t operate on stopped or stopping End!')
+      termination_action = _termination_action(
+          self._lock, self._stats, operation_id, self._cycle)
+      operation = _operation.invocation_operate(
+          operation_id, group, method, subscription, timeout, initial_metadata,
+          payload, completion, self._mate.accept_ticket, termination_action,
+          self._cycle.pool)
+      self._cycle.operations[operation_id] = operation
+      return operation.context, operation.operator
+
+  def operation_stats(self):
+    """See base.End.operation_stats for specification."""
+    with self._lock:
+      return dict(self._stats)
+
+  def add_idle_action(self, action):
+    """See base.End.add_idle_action for specification."""
+    with self._lock:
+      if self._cycle is None:
+        raise ValueError('Can\'t add idle action to stopped End!')
+      action_with_exceptions_logged = callable_util.with_exceptions_logged(
+          action, _IDLE_ACTION_EXCEPTION_LOG_MESSAGE)
+      if self._cycle.operations:
+        self._cycle.idle_actions.append(action_with_exceptions_logged)
+      else:
+        self._cycle.pool.submit(action_with_exceptions_logged)
+
+  def accept_ticket(self, ticket):
+    """See links.Link.accept_ticket for specification."""
+    with self._lock:
+      if self._cycle is not None and not self._cycle.grace:
+        operation = self._cycle.operations.get(ticket.operation_id)
+        if operation is not None:
+          operation.handle_ticket(ticket)
+        elif self._servicer_package is not None:
+          termination_action = _termination_action(
+              self._lock, self._stats, ticket.operation_id, self._cycle)
+          operation = _operation.service_operate(
+              self._servicer_package, ticket, self._mate.accept_ticket,
+              termination_action, self._cycle.pool)
+          if operation is not None:
+            self._cycle.operations[ticket.operation_id] = operation
+
+  def join_link(self, link):
+    """See links.Link.join_link for specification."""
+    with self._lock:
+      self._mate = utilities.NULL_LINK if link is None else link
+
+
+def serviceless_end_link():
+  """Constructs an End usable only for invoking operations.
+
+  Returns:
+    An End usable for translating operations into ticket exchange.
+  """
+  return _End(None)
+
+
+def serviceful_end_link(servicer, default_timeout, maximum_timeout):
+  """Constructs an End capable of servicing operations.
+
+  Args:
+    servicer: An interfaces.Servicer for servicing operations.
+    default_timeout: A length of time in seconds to be used as the default
+      time alloted for a single operation.
+    maximum_timeout: A length of time in seconds to be used as the maximum
+      time alloted for a single operation.
+
+  Returns:
+    An End capable of servicing the operations requested of it through ticket
+      exchange.
+  """
+  return _End(
+      _utilities.ServicerPackage(servicer, default_timeout, maximum_timeout))
diff --git a/src/python/grpcio/grpc/framework/core/_expiration.py b/src/python/grpcio/grpc/framework/core/_expiration.py
new file mode 100644
index 0000000000000000000000000000000000000000..d94bdf2d2b71d5a73f0ce1403404a53f1101b084
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_expiration.py
@@ -0,0 +1,152 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""State and behavior for operation expiration."""
+
+import time
+
+from grpc.framework.core import _interfaces
+from grpc.framework.foundation import later
+from grpc.framework.interfaces.base import base
+
+
+class _ExpirationManager(_interfaces.ExpirationManager):
+  """An implementation of _interfaces.ExpirationManager."""
+
+  def __init__(
+      self, commencement, timeout, maximum_timeout, lock, termination_manager,
+      transmission_manager):
+    """Constructor.
+
+    Args:
+      commencement: The time in seconds since the epoch at which the operation
+        began.
+      timeout: A length of time in seconds to allow for the operation to run.
+      maximum_timeout: The maximum length of time in seconds to allow for the
+        operation to run despite what is requested via this object's
+        change_timout method.
+      lock: The operation-wide lock.
+      termination_manager: The _interfaces.TerminationManager for the operation.
+      transmission_manager: The _interfaces.TransmissionManager for the
+        operation.
+    """
+    self._lock = lock
+    self._termination_manager = termination_manager
+    self._transmission_manager = transmission_manager
+    self._commencement = commencement
+    self._maximum_timeout = maximum_timeout
+
+    self._timeout = timeout
+    self._deadline = commencement + timeout
+    self._index = None
+    self._future = None
+
+  def _expire(self, index):
+    def expire():
+      with self._lock:
+        if self._future is not None and index == self._index:
+          self._future = None
+          self._termination_manager.expire()
+          self._transmission_manager.abort(base.Outcome.EXPIRED)
+    return expire
+
+  def start(self):
+    self._index = 0
+    self._future = later.later(self._timeout, self._expire(0))
+
+  def change_timeout(self, timeout):
+    if self._future is not None and timeout != self._timeout:
+      self._future.cancel()
+      new_timeout = min(timeout, self._maximum_timeout)
+      new_index = self._index + 1
+      self._timeout = new_timeout
+      self._deadline = self._commencement + new_timeout
+      self._index = new_index
+      delay = self._deadline - time.time()
+      self._future = later.later(delay, self._expire(new_index))
+      if new_timeout != timeout:
+        self._transmission_manager.timeout(new_timeout)
+
+  def deadline(self):
+    return self._deadline
+
+  def terminate(self):
+    if self._future:
+      self._future.cancel()
+      self._future = None
+    self._deadline_index = None
+
+
+def invocation_expiration_manager(
+    timeout, lock, termination_manager, transmission_manager):
+  """Creates an _interfaces.ExpirationManager appropriate for front-side use.
+
+  Args:
+    timeout: A length of time in seconds to allow for the operation to run.
+    lock: The operation-wide lock.
+    termination_manager: The _interfaces.TerminationManager for the operation.
+    transmission_manager: The _interfaces.TransmissionManager for the
+      operation.
+
+  Returns:
+    An _interfaces.ExpirationManager appropriate for invocation-side use.
+  """
+  expiration_manager = _ExpirationManager(
+      time.time(), timeout, timeout, lock, termination_manager,
+      transmission_manager)
+  expiration_manager.start()
+  return expiration_manager
+
+
+def service_expiration_manager(
+    timeout, default_timeout, maximum_timeout, lock, termination_manager,
+    transmission_manager):
+  """Creates an _interfaces.ExpirationManager appropriate for back-side use.
+
+  Args:
+    timeout: A length of time in seconds to allow for the operation to run. May
+      be None in which case default_timeout will be used.
+    default_timeout: The default length of time in seconds to allow for the
+      operation to run if the front-side customer has not specified such a value
+      (or if the value they specified is not yet known).
+    maximum_timeout: The maximum length of time in seconds to allow for the
+      operation to run.
+    lock: The operation-wide lock.
+    termination_manager: The _interfaces.TerminationManager for the operation.
+    transmission_manager: The _interfaces.TransmissionManager for the
+      operation.
+
+  Returns:
+    An _interfaces.ExpirationManager appropriate for service-side use.
+  """
+  expiration_manager = _ExpirationManager(
+      time.time(), default_timeout if timeout is None else timeout,
+      maximum_timeout, lock, termination_manager, transmission_manager)
+  expiration_manager.start()
+  return expiration_manager
diff --git a/src/python/grpcio/grpc/framework/core/_ingestion.py b/src/python/grpcio/grpc/framework/core/_ingestion.py
new file mode 100644
index 0000000000000000000000000000000000000000..59f7f8adc8656b73b669f5a4e15e01d23b295941
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_ingestion.py
@@ -0,0 +1,410 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""State and behavior for ingestion during an operation."""
+
+import abc
+import collections
+
+from grpc.framework.core import _constants
+from grpc.framework.core import _interfaces
+from grpc.framework.foundation import abandonment
+from grpc.framework.foundation import callable_util
+from grpc.framework.interfaces.base import base
+
+_CREATE_SUBSCRIPTION_EXCEPTION_LOG_MESSAGE = 'Exception initializing ingestion!'
+_INGESTION_EXCEPTION_LOG_MESSAGE = 'Exception during ingestion!'
+
+
+class _SubscriptionCreation(collections.namedtuple(
+    '_SubscriptionCreation', ('subscription', 'remote_error', 'abandoned'))):
+  """A sum type for the outcome of ingestion initialization.
+
+  Either subscription will be non-None, remote_error will be True, or abandoned
+  will be True.
+
+  Attributes:
+    subscription: A base.Subscription describing the customer's interest in
+      operation values from the other side.
+    remote_error: A boolean indicating that the subscription could not be
+      created due to an error on the remote side of the operation.
+    abandoned: A boolean indicating that subscription creation was abandoned.
+  """
+
+
+class _SubscriptionCreator(object):
+  """Common specification of subscription-creating behavior."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def create(self, group, method):
+    """Creates the base.Subscription of the local customer.
+
+    Any exceptions raised by this method should be attributed to and treated as
+    defects in the customer code called by this method.
+
+    Args:
+      group: The group identifier of the operation.
+      method: The method identifier of the operation.
+
+    Returns:
+      A _SubscriptionCreation describing the result of subscription creation.
+    """
+    raise NotImplementedError()
+
+
+class _ServiceSubscriptionCreator(_SubscriptionCreator):
+  """A _SubscriptionCreator appropriate for service-side use."""
+
+  def __init__(self, servicer, operation_context, output_operator):
+    """Constructor.
+
+    Args:
+      servicer: The base.Servicer that will service the operation.
+      operation_context: A base.OperationContext for the operation to be passed
+        to the customer.
+      output_operator: A base.Operator for the operation to be passed to the
+        customer and to be called by the customer to accept operation data
+        emitted by the customer.
+    """
+    self._servicer = servicer
+    self._operation_context = operation_context
+    self._output_operator = output_operator
+
+  def create(self, group, method):
+    try:
+      subscription = self._servicer.service(
+          group, method, self._operation_context, self._output_operator)
+    except base.NoSuchMethodError:
+      return _SubscriptionCreation(None, True, False)
+    except abandonment.Abandoned:
+      return _SubscriptionCreation(None, False, True)
+    else:
+      return _SubscriptionCreation(subscription, False, False)
+
+
+def _wrap(behavior):
+  def wrapped(*args, **kwargs):
+    try:
+      behavior(*args, **kwargs)
+    except abandonment.Abandoned:
+      return False
+    else:
+      return True
+  return wrapped
+
+
+class _IngestionManager(_interfaces.IngestionManager):
+  """An implementation of _interfaces.IngestionManager."""
+
+  def __init__(
+      self, lock, pool, subscription, subscription_creator, termination_manager,
+      transmission_manager, expiration_manager):
+    """Constructor.
+
+    Args:
+      lock: The operation-wide lock.
+      pool: A thread pool in which to execute customer code.
+      subscription: A base.Subscription describing the customer's interest in
+        operation values from the other side. May be None if
+        subscription_creator is not None.
+      subscription_creator: A _SubscriptionCreator wrapping the portion of
+        customer code that when called returns the base.Subscription describing
+        the customer's interest in operation values from the other side. May be
+        None if subscription is not None.
+      termination_manager: The _interfaces.TerminationManager for the operation.
+      transmission_manager: The _interfaces.TransmissionManager for the
+        operation.
+      expiration_manager: The _interfaces.ExpirationManager for the operation.
+    """
+    self._lock = lock
+    self._pool = pool
+    self._termination_manager = termination_manager
+    self._transmission_manager = transmission_manager
+    self._expiration_manager = expiration_manager
+
+    if subscription is None:
+      self._subscription_creator = subscription_creator
+      self._wrapped_operator = None
+    elif subscription.kind is base.Subscription.Kind.FULL:
+      self._subscription_creator = None
+      self._wrapped_operator = _wrap(subscription.operator.advance)
+    else:
+      # TODO(nathaniel): Support other subscriptions.
+      raise ValueError('Unsupported subscription "%s"!' % subscription.kind)
+    self._pending_initial_metadata = None
+    self._pending_payloads = []
+    self._pending_completion = None
+    self._local_allowance = 1
+    # A nonnegative integer or None, with None indicating that the local
+    # customer is done emitting anyway so there's no need to bother it by
+    # informing it that the remote customer has granted it further permission to
+    # emit.
+    self._remote_allowance = 0
+    self._processing = False
+
+  def _abort_internal_only(self):
+    self._subscription_creator = None
+    self._wrapped_operator = None
+    self._pending_initial_metadata = None
+    self._pending_payloads = None
+    self._pending_completion = None
+
+  def _abort_and_notify(self, outcome):
+    self._abort_internal_only()
+    self._termination_manager.abort(outcome)
+    self._transmission_manager.abort(outcome)
+    self._expiration_manager.terminate()
+
+  def _operator_next(self):
+    """Computes the next step for full-subscription ingestion.
+
+    Returns:
+      An initial_metadata, payload, completion, allowance, continue quintet
+        indicating what operation values (if any) are available to pass into
+        customer code and whether or not there is anything immediately
+        actionable to call customer code to do.
+    """
+    if self._wrapped_operator is None:
+      return None, None, None, None, False
+    else:
+      initial_metadata, payload, completion, allowance, action = [None] * 5
+      if self._pending_initial_metadata is not None:
+        initial_metadata = self._pending_initial_metadata
+        self._pending_initial_metadata = None
+        action = True
+      if self._pending_payloads and 0 < self._local_allowance:
+        payload = self._pending_payloads.pop(0)
+        self._local_allowance -= 1
+        action = True
+      if not self._pending_payloads and self._pending_completion is not None:
+        completion = self._pending_completion
+        self._pending_completion = None
+        action = True
+      if self._remote_allowance is not None and 0 < self._remote_allowance:
+        allowance = self._remote_allowance
+        self._remote_allowance = 0
+        action = True
+      return initial_metadata, payload, completion, allowance, bool(action)
+
+  def _operator_process(
+      self, wrapped_operator, initial_metadata, payload,
+      completion, allowance):
+    while True:
+      advance_outcome = callable_util.call_logging_exceptions(
+          wrapped_operator, _INGESTION_EXCEPTION_LOG_MESSAGE,
+          initial_metadata=initial_metadata, payload=payload,
+          completion=completion, allowance=allowance)
+      if advance_outcome.exception is None:
+        if advance_outcome.return_value:
+          with self._lock:
+            if self._termination_manager.outcome is not None:
+              return
+            if completion is not None:
+              self._termination_manager.ingestion_complete()
+            initial_metadata, payload, completion, allowance, moar = (
+                self._operator_next())
+            if not moar:
+              self._processing = False
+              return
+        else:
+          with self._lock:
+            if self._termination_manager.outcome is None:
+              self._abort_and_notify(base.Outcome.LOCAL_FAILURE)
+            return
+      else:
+        with self._lock:
+          if self._termination_manager.outcome is None:
+            self._abort_and_notify(base.Outcome.LOCAL_FAILURE)
+          return
+
+  def _operator_post_create(self, subscription):
+    wrapped_operator = _wrap(subscription.operator.advance)
+    with self._lock:
+      if self._termination_manager.outcome is not None:
+        return
+      self._wrapped_operator = wrapped_operator
+      self._subscription_creator = None
+      metadata, payload, completion, allowance, moar = self._operator_next()
+      if not moar:
+        self._processing = False
+        return
+    self._operator_process(
+        wrapped_operator, metadata, payload, completion, allowance)
+
+  def _create(self, subscription_creator, group, name):
+    outcome = callable_util.call_logging_exceptions(
+        subscription_creator.create, _CREATE_SUBSCRIPTION_EXCEPTION_LOG_MESSAGE,
+        group, name)
+    if outcome.return_value is None:
+      with self._lock:
+        if self._termination_manager.outcome is None:
+          self._abort_and_notify(base.Outcome.LOCAL_FAILURE)
+    elif outcome.return_value.abandoned:
+      with self._lock:
+        if self._termination_manager.outcome is None:
+          self._abort_and_notify(base.Outcome.LOCAL_FAILURE)
+    elif outcome.return_value.remote_error:
+      with self._lock:
+        if self._termination_manager.outcome is None:
+          self._abort_and_notify(base.Outcome.REMOTE_FAILURE)
+    elif outcome.return_value.subscription.kind is base.Subscription.Kind.FULL:
+      self._operator_post_create(outcome.return_value.subscription)
+    else:
+      # TODO(nathaniel): Support other subscriptions.
+      raise ValueError(
+          'Unsupported "%s"!' % outcome.return_value.subscription.kind)
+
+  def _store_advance(self, initial_metadata, payload, completion, allowance):
+    if initial_metadata is not None:
+      self._pending_initial_metadata = initial_metadata
+    if payload is not None:
+      self._pending_payloads.append(payload)
+    if completion is not None:
+      self._pending_completion = completion
+    if allowance is not None and self._remote_allowance is not None:
+      self._remote_allowance += allowance
+
+  def _operator_advance(self, initial_metadata, payload, completion, allowance):
+    if self._processing:
+      self._store_advance(initial_metadata, payload, completion, allowance)
+    else:
+      action = False
+      if initial_metadata is not None:
+        action = True
+      if payload is not None:
+        if 0 < self._local_allowance:
+          self._local_allowance -= 1
+          action = True
+        else:
+          self._pending_payloads.append(payload)
+          payload = False
+      if completion is not None:
+        if self._pending_payloads:
+          self._pending_completion = completion
+        else:
+          action = True
+      if allowance is not None and self._remote_allowance is not None:
+        allowance += self._remote_allowance
+        self._remote_allowance = 0
+        action = True
+      if action:
+        self._pool.submit(
+            callable_util.with_exceptions_logged(
+                self._operator_process, _constants.INTERNAL_ERROR_LOG_MESSAGE),
+            self._wrapped_operator, initial_metadata, payload, completion,
+            allowance)
+
+  def set_group_and_method(self, group, method):
+    """See _interfaces.IngestionManager.set_group_and_method for spec."""
+    if self._subscription_creator is not None and not self._processing:
+      self._pool.submit(
+          callable_util.with_exceptions_logged(
+              self._create, _constants.INTERNAL_ERROR_LOG_MESSAGE),
+          self._subscription_creator, group, method)
+      self._processing = True
+
+  def add_local_allowance(self, allowance):
+    """See _interfaces.IngestionManager.add_local_allowance for spec."""
+    if any((self._subscription_creator, self._wrapped_operator,)):
+      self._local_allowance += allowance
+      if not self._processing:
+        initial_metadata, payload, completion, allowance, moar = (
+            self._operator_next())
+        if moar:
+          self._pool.submit(
+              callable_util.with_exceptions_logged(
+                  self._operator_process,
+                  _constants.INTERNAL_ERROR_LOG_MESSAGE),
+              initial_metadata, payload, completion, allowance)
+
+  def local_emissions_done(self):
+    self._remote_allowance = None
+
+  def advance(self, initial_metadata, payload, completion, allowance):
+    """See _interfaces.IngestionManager.advance for specification."""
+    if self._subscription_creator is not None:
+      self._store_advance(initial_metadata, payload, completion, allowance)
+    elif self._wrapped_operator is not None:
+      self._operator_advance(initial_metadata, payload, completion, allowance)
+
+
+def invocation_ingestion_manager(
+    subscription, lock, pool, termination_manager, transmission_manager,
+    expiration_manager):
+  """Creates an IngestionManager appropriate for invocation-side use.
+
+  Args:
+    subscription: A base.Subscription indicating the customer's interest in the
+      data and results from the service-side of the operation.
+    lock: The operation-wide lock.
+    pool: A thread pool in which to execute customer code.
+    termination_manager: The _interfaces.TerminationManager for the operation.
+    transmission_manager: The _interfaces.TransmissionManager for the
+      operation.
+    expiration_manager: The _interfaces.ExpirationManager for the operation.
+
+  Returns:
+    An IngestionManager appropriate for invocation-side use.
+  """
+  return _IngestionManager(
+      lock, pool, subscription, None, termination_manager, transmission_manager,
+      expiration_manager)
+
+
+def service_ingestion_manager(
+    servicer, operation_context, output_operator, lock, pool,
+    termination_manager, transmission_manager, expiration_manager):
+  """Creates an IngestionManager appropriate for service-side use.
+
+  The returned IngestionManager will require its set_group_and_name method to be
+  called before its advance method may be called.
+
+  Args:
+    servicer: A base.Servicer for servicing the operation.
+    operation_context: A base.OperationContext for the operation to be passed to
+      the customer.
+    output_operator: A base.Operator for the operation to be passed to the
+      customer and to be called by the customer to accept operation data output
+      by the customer.
+    lock: The operation-wide lock.
+    pool: A thread pool in which to execute customer code.
+    termination_manager: The _interfaces.TerminationManager for the operation.
+    transmission_manager: The _interfaces.TransmissionManager for the
+      operation.
+    expiration_manager: The _interfaces.ExpirationManager for the operation.
+
+  Returns:
+    An IngestionManager appropriate for service-side use.
+  """
+  subscription_creator = _ServiceSubscriptionCreator(
+      servicer, operation_context, output_operator)
+  return _IngestionManager(
+      lock, pool, None, subscription_creator, termination_manager,
+      transmission_manager, expiration_manager)
diff --git a/src/python/grpcio/grpc/framework/core/_interfaces.py b/src/python/grpcio/grpc/framework/core/_interfaces.py
new file mode 100644
index 0000000000000000000000000000000000000000..a626b9f76792c93bc4c175b29fddb0e67d39eb9a
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_interfaces.py
@@ -0,0 +1,308 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Package-internal interfaces."""
+
+import abc
+
+from grpc.framework.interfaces.base import base
+
+
+class TerminationManager(object):
+  """An object responsible for handling the termination of an operation.
+
+  Attributes:
+    outcome: None if the operation is active or a base.Outcome value if it has
+      terminated.
+  """
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def add_callback(self, callback):
+    """Registers a callback to be called on operation termination.
+
+    If the operation has already terminated the callback will not be called.
+
+    Args:
+      callback: A callable that will be passed an interfaces.Outcome value.
+
+    Returns:
+      None if the operation has not yet terminated and the passed callback will
+        be called when it does, or a base.Outcome value describing the operation
+        termination if the operation has terminated and the callback will not be
+        called as a result of this method call.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def emission_complete(self):
+    """Indicates that emissions from customer code have completed."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def transmission_complete(self):
+    """Indicates that transmissions to the remote end are complete.
+
+    Returns:
+      True if the operation has terminated or False if the operation remains
+        ongoing.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def reception_complete(self):
+    """Indicates that reception from the other side is complete."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def ingestion_complete(self):
+    """Indicates that customer code ingestion of received values is complete."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def expire(self):
+    """Indicates that the operation must abort because it has taken too long."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def abort(self, outcome):
+    """Indicates that the operation must abort for the indicated reason.
+
+    Args:
+      outcome: An interfaces.Outcome indicating operation abortion.
+    """
+    raise NotImplementedError()
+
+
+class TransmissionManager(object):
+  """A manager responsible for transmitting to the other end of an operation."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def kick_off(
+      self, group, method, timeout, initial_metadata, payload, completion,
+      allowance):
+    """Transmits the values associated with operation invocation."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def advance(self, initial_metadata, payload, completion, allowance):
+    """Accepts values for transmission to the other end of the operation.
+
+    Args:
+      initial_metadata: An initial metadata value to be transmitted to the other
+        side of the operation. May only ever be non-None once.
+      payload: A payload value.
+      completion: A base.Completion value. May only ever be non-None in the last
+        transmission to be made to the other side.
+      allowance: A positive integer communicating the number of additional
+        payloads allowed to be transmitted from the other side to this side of
+        the operation, or None if no additional allowance is being granted in
+        this call.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def timeout(self, timeout):
+    """Accepts for transmission to the other side a new timeout value.
+
+    Args:
+      timeout: A positive float used as the new timeout value for the operation
+        to be transmitted to the other side.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def allowance(self, allowance):
+    """Indicates to this manager that the remote customer is allowing payloads.
+
+    Args:
+      allowance: A positive integer indicating the number of additional payloads
+        the remote customer is allowing to be transmitted from this side of the
+        operation.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def remote_complete(self):
+    """Indicates to this manager that data from the remote side is complete."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def abort(self, outcome):
+    """Indicates that the operation has aborted.
+
+    Args:
+      outcome: An interfaces.Outcome for the operation. If None, indicates that
+        the operation abortion should not be communicated to the other side of
+        the operation.
+    """
+    raise NotImplementedError()
+
+
+class ExpirationManager(object):
+  """A manager responsible for aborting the operation if it runs out of time."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def change_timeout(self, timeout):
+    """Changes the timeout allotted for the operation.
+
+    Operation duration is always measure from the beginning of the operation;
+    calling this method changes the operation's allotted time to timeout total
+    seconds, not timeout seconds from the time of this method call.
+
+    Args:
+      timeout: A length of time in seconds to allow for the operation.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def deadline(self):
+    """Returns the time until which the operation is allowed to run.
+
+    Returns:
+      The time (seconds since the epoch) at which the operation will expire.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def terminate(self):
+    """Indicates to this manager that the operation has terminated."""
+    raise NotImplementedError()
+
+
+class EmissionManager(base.Operator):
+  """A manager of values emitted by customer code."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def advance(
+      self, initial_metadata=None, payload=None, completion=None,
+      allowance=None):
+    """Accepts a value emitted by customer code.
+
+    This method should only be called by customer code.
+
+    Args:
+      initial_metadata: An initial metadata value emitted by the local customer
+        to be sent to the other side of the operation.
+      payload: A payload value emitted by the local customer to be sent to the
+        other side of the operation.
+      completion: A Completion value emitted by the local customer to be sent to
+        the other side of the operation.
+      allowance: A positive integer indicating an additional number of payloads
+        that the local customer is willing to accept from the other side of the
+        operation.
+    """
+    raise NotImplementedError()
+
+
+class IngestionManager(object):
+  """A manager responsible for executing customer code.
+
+  This name of this manager comes from its responsibility to pass successive
+  values from the other side of the operation into the code of the local
+  customer.
+  """
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def set_group_and_method(self, group, method):
+    """Communicates to this IngestionManager the operation group and method.
+
+    Args:
+      group: The group identifier of the operation.
+      method: The method identifier of the operation.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def add_local_allowance(self, allowance):
+    """Communicates to this IngestionManager that more payloads may be ingested.
+
+    Args:
+      allowance: A positive integer indicating an additional number of payloads
+        that the local customer is willing to ingest.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def local_emissions_done(self):
+    """Indicates to this manager that local emissions are done."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def advance(self, initial_metadata, payload, completion, allowance):
+    """Advances the operation by passing values to the local customer."""
+    raise NotImplementedError()
+
+
+class ReceptionManager(object):
+  """A manager responsible for receiving tickets from the other end."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def receive_ticket(self, ticket):
+    """Handle a ticket from the other side of the operation.
+
+    Args:
+      ticket: An interfaces.BackToFrontTicket or interfaces.FrontToBackTicket
+        appropriate to this end of the operation and this object.
+    """
+    raise NotImplementedError()
+
+
+class Operation(object):
+  """An ongoing operation.
+
+  Attributes:
+    context: A base.OperationContext object for the operation.
+    operator: A base.Operator object for the operation for use by the customer
+      of the operation.
+  """
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def handle_ticket(self, ticket):
+    """Handle a ticket from the other side of the operation.
+
+    Args:
+      ticket: A links.Ticket from the other side of the operation.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def abort(self, outcome):
+    """Aborts the operation.
+
+    Args:
+      outcome: A base.Outcome value indicating operation abortion.
+    """
+    raise NotImplementedError()
diff --git a/src/python/grpcio/grpc/framework/core/_operation.py b/src/python/grpcio/grpc/framework/core/_operation.py
new file mode 100644
index 0000000000000000000000000000000000000000..d20e40a53da91d2f03770932e800419d8ed405a5
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_operation.py
@@ -0,0 +1,192 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Implementation of operations."""
+
+import threading
+
+# _utilities is referenced from specification in this module.
+from grpc.framework.core import _context
+from grpc.framework.core import _emission
+from grpc.framework.core import _expiration
+from grpc.framework.core import _ingestion
+from grpc.framework.core import _interfaces
+from grpc.framework.core import _reception
+from grpc.framework.core import _termination
+from grpc.framework.core import _transmission
+from grpc.framework.core import _utilities  # pylint: disable=unused-import
+
+
+class _EasyOperation(_interfaces.Operation):
+  """A trivial implementation of interfaces.Operation."""
+
+  def __init__(
+      self, lock, termination_manager, transmission_manager, expiration_manager,
+      context, operator, reception_manager):
+    """Constructor.
+
+    Args:
+      lock: The operation-wide lock.
+      termination_manager: The _interfaces.TerminationManager for the operation.
+      transmission_manager: The _interfaces.TransmissionManager for the
+        operation.
+      expiration_manager: The _interfaces.ExpirationManager for the operation.
+      context: A base.OperationContext for use by the customer during the
+        operation.
+      operator: A base.Operator for use by the customer during the operation.
+      reception_manager: The _interfaces.ReceptionManager for the operation.
+    """
+    self._lock = lock
+    self._termination_manager = termination_manager
+    self._transmission_manager = transmission_manager
+    self._expiration_manager = expiration_manager
+    self._reception_manager = reception_manager
+
+    self.context = context
+    self.operator = operator
+
+  def handle_ticket(self, ticket):
+    with self._lock:
+      self._reception_manager.receive_ticket(ticket)
+
+  def abort(self, outcome):
+    with self._lock:
+      if self._termination_manager.outcome is None:
+        self._termination_manager.abort(outcome)
+        self._transmission_manager.abort(outcome)
+        self._expiration_manager.terminate()
+
+
+def invocation_operate(
+    operation_id, group, method, subscription, timeout, initial_metadata,
+    payload, completion, ticket_sink, termination_action, pool):
+  """Constructs objects necessary for front-side operation management.
+
+  Args:
+    operation_id: An object identifying the operation.
+    group: The group identifier of the operation.
+    method: The method identifier of the operation.
+    subscription: A base.Subscription describing the customer's interest in the
+      results of the operation.
+    timeout: A length of time in seconds to allow for the operation.
+    initial_metadata: An initial metadata value to be sent to the other side of
+      the operation. May be None if the initial metadata will be passed later or
+      if there will be no initial metadata passed at all.
+    payload: The first payload value to be transmitted to the other side. May be
+      None if there is no such value or if the customer chose not to pass it at
+      operation invocation.
+    completion: A base.Completion value indicating the end of values passed to
+      the other side of the operation.
+    ticket_sink: A callable that accepts links.Tickets and delivers them to the
+      other side of the operation.
+    termination_action: A callable that accepts the outcome of the operation as
+      a base.Outcome value to be called on operation completion.
+    pool: A thread pool with which to do the work of the operation.
+
+  Returns:
+    An _interfaces.Operation for the operation.
+  """
+  lock = threading.Lock()
+  with lock:
+    termination_manager = _termination.invocation_termination_manager(
+        termination_action, pool)
+    transmission_manager = _transmission.TransmissionManager(
+        operation_id, ticket_sink, lock, pool, termination_manager)
+    expiration_manager = _expiration.invocation_expiration_manager(
+        timeout, lock, termination_manager, transmission_manager)
+    operation_context = _context.OperationContext(
+        lock, termination_manager, transmission_manager, expiration_manager)
+    emission_manager = _emission.EmissionManager(
+        lock, termination_manager, transmission_manager, expiration_manager)
+    ingestion_manager = _ingestion.invocation_ingestion_manager(
+        subscription, lock, pool, termination_manager, transmission_manager,
+        expiration_manager)
+    reception_manager = _reception.ReceptionManager(
+        termination_manager, transmission_manager, expiration_manager,
+        ingestion_manager)
+
+    termination_manager.set_expiration_manager(expiration_manager)
+    transmission_manager.set_expiration_manager(expiration_manager)
+    emission_manager.set_ingestion_manager(ingestion_manager)
+
+    transmission_manager.kick_off(
+        group, method, timeout, initial_metadata, payload, completion, None)
+
+  return _EasyOperation(
+      lock, termination_manager, transmission_manager, expiration_manager,
+      operation_context, emission_manager, reception_manager)
+
+
+def service_operate(
+    servicer_package, ticket, ticket_sink, termination_action, pool):
+  """Constructs an Operation for service of an operation.
+
+  Args:
+    servicer_package: A _utilities.ServicerPackage to be used servicing the
+      operation.
+    ticket: The first links.Ticket received for the operation.
+    ticket_sink: A callable that accepts links.Tickets and delivers them to the
+      other side of the operation.
+    termination_action: A callable that accepts the outcome of the operation as
+      a base.Outcome value to be called on operation completion.
+    pool: A thread pool with which to do the work of the operation.
+
+  Returns:
+    An _interfaces.Operation for the operation.
+  """
+  lock = threading.Lock()
+  with lock:
+    termination_manager = _termination.service_termination_manager(
+        termination_action, pool)
+    transmission_manager = _transmission.TransmissionManager(
+        ticket.operation_id, ticket_sink, lock, pool, termination_manager)
+    expiration_manager = _expiration.service_expiration_manager(
+        ticket.timeout, servicer_package.default_timeout,
+        servicer_package.maximum_timeout, lock, termination_manager,
+        transmission_manager)
+    operation_context = _context.OperationContext(
+        lock, termination_manager, transmission_manager, expiration_manager)
+    emission_manager = _emission.EmissionManager(
+        lock, termination_manager, transmission_manager, expiration_manager)
+    ingestion_manager = _ingestion.service_ingestion_manager(
+        servicer_package.servicer, operation_context, emission_manager, lock,
+        pool, termination_manager, transmission_manager, expiration_manager)
+    reception_manager = _reception.ReceptionManager(
+        termination_manager, transmission_manager, expiration_manager,
+        ingestion_manager)
+
+    termination_manager.set_expiration_manager(expiration_manager)
+    transmission_manager.set_expiration_manager(expiration_manager)
+    emission_manager.set_ingestion_manager(ingestion_manager)
+
+    reception_manager.receive_ticket(ticket)
+
+  return _EasyOperation(
+      lock, termination_manager, transmission_manager, expiration_manager,
+      operation_context, emission_manager, reception_manager)
diff --git a/src/python/grpcio/grpc/framework/core/_reception.py b/src/python/grpcio/grpc/framework/core/_reception.py
new file mode 100644
index 0000000000000000000000000000000000000000..0858f64ff6bf47c85d472658f6a08376ecc667c9
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_reception.py
@@ -0,0 +1,139 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""State and behavior for ticket reception."""
+
+from grpc.framework.core import _interfaces
+from grpc.framework.interfaces.base import base
+from grpc.framework.interfaces.base import utilities
+from grpc.framework.interfaces.links import links
+
+_REMOTE_TICKET_TERMINATION_TO_LOCAL_OUTCOME = {
+    links.Ticket.Termination.CANCELLATION: base.Outcome.CANCELLED,
+    links.Ticket.Termination.EXPIRATION: base.Outcome.EXPIRED,
+    links.Ticket.Termination.SHUTDOWN: base.Outcome.REMOTE_SHUTDOWN,
+    links.Ticket.Termination.RECEPTION_FAILURE: base.Outcome.RECEPTION_FAILURE,
+    links.Ticket.Termination.TRANSMISSION_FAILURE:
+        base.Outcome.TRANSMISSION_FAILURE,
+    links.Ticket.Termination.LOCAL_FAILURE: base.Outcome.REMOTE_FAILURE,
+    links.Ticket.Termination.REMOTE_FAILURE: base.Outcome.LOCAL_FAILURE,
+}
+
+
+class ReceptionManager(_interfaces.ReceptionManager):
+  """A ReceptionManager based around a _Receiver passed to it."""
+
+  def __init__(
+      self, termination_manager, transmission_manager, expiration_manager,
+      ingestion_manager):
+    """Constructor.
+
+    Args:
+      termination_manager: The operation's _interfaces.TerminationManager.
+      transmission_manager: The operation's _interfaces.TransmissionManager.
+      expiration_manager: The operation's _interfaces.ExpirationManager.
+      ingestion_manager: The operation's _interfaces.IngestionManager.
+    """
+    self._termination_manager = termination_manager
+    self._transmission_manager = transmission_manager
+    self._expiration_manager = expiration_manager
+    self._ingestion_manager = ingestion_manager
+
+    self._lowest_unseen_sequence_number = 0
+    self._out_of_sequence_tickets = {}
+    self._aborted = False
+
+  def _abort(self, outcome):
+    self._aborted = True
+    if self._termination_manager.outcome is None:
+      self._termination_manager.abort(outcome)
+      self._transmission_manager.abort(None)
+      self._expiration_manager.terminate()
+
+  def _sequence_failure(self, ticket):
+    """Determines a just-arrived ticket's sequential legitimacy.
+
+    Args:
+      ticket: A just-arrived ticket.
+
+    Returns:
+      True if the ticket is sequentially legitimate; False otherwise.
+    """
+    if ticket.sequence_number < self._lowest_unseen_sequence_number:
+      return True
+    elif ticket.sequence_number in self._out_of_sequence_tickets:
+      return True
+    else:
+      return False
+
+  def _process_one(self, ticket):
+    if ticket.sequence_number == 0:
+      self._ingestion_manager.set_group_and_method(ticket.group, ticket.method)
+    if ticket.timeout is not None:
+      self._expiration_manager.change_timeout(ticket.timeout)
+    if ticket.termination is None:
+      completion = None
+    else:
+      completion = utilities.completion(
+          ticket.terminal_metadata, ticket.code, ticket.message)
+    self._ingestion_manager.advance(
+        ticket.initial_metadata, ticket.payload, completion, ticket.allowance)
+    if ticket.allowance is not None:
+      self._transmission_manager.allowance(ticket.allowance)
+
+  def _process(self, ticket):
+    """Process those tickets ready to be processed.
+
+    Args:
+      ticket: A just-arrived ticket the sequence number of which matches this
+        _ReceptionManager's _lowest_unseen_sequence_number field.
+    """
+    while True:
+      self._process_one(ticket)
+      next_ticket = self._out_of_sequence_tickets.pop(
+          ticket.sequence_number + 1, None)
+      if next_ticket is None:
+        self._lowest_unseen_sequence_number = ticket.sequence_number + 1
+        return
+      else:
+        ticket = next_ticket
+
+  def receive_ticket(self, ticket):
+    """See _interfaces.ReceptionManager.receive_ticket for specification."""
+    if self._aborted:
+      return
+    elif self._sequence_failure(ticket):
+      self._abort(base.Outcome.RECEPTION_FAILURE)
+    elif ticket.termination not in (None, links.Ticket.Termination.COMPLETION):
+      outcome = _REMOTE_TICKET_TERMINATION_TO_LOCAL_OUTCOME[ticket.termination]
+      self._abort(outcome)
+    elif ticket.sequence_number == self._lowest_unseen_sequence_number:
+      self._process(ticket)
+    else:
+      self._out_of_sequence_tickets[ticket.sequence_number] = ticket
diff --git a/src/python/grpcio/grpc/framework/core/_termination.py b/src/python/grpcio/grpc/framework/core/_termination.py
new file mode 100644
index 0000000000000000000000000000000000000000..ad9f6123d8dddbdb5c70ee3591ba312f711cb947
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_termination.py
@@ -0,0 +1,212 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""State and behavior for operation termination."""
+
+import abc
+
+from grpc.framework.core import _constants
+from grpc.framework.core import _interfaces
+from grpc.framework.foundation import callable_util
+from grpc.framework.interfaces.base import base
+
+
+def _invocation_completion_predicate(
+    unused_emission_complete, unused_transmission_complete,
+    unused_reception_complete, ingestion_complete):
+  return ingestion_complete
+
+
+def _service_completion_predicate(
+    unused_emission_complete, transmission_complete, unused_reception_complete,
+    unused_ingestion_complete):
+  return transmission_complete
+
+
+class TerminationManager(_interfaces.TerminationManager):
+  """A _interfaces.TransmissionManager on which another manager may be set."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def set_expiration_manager(self, expiration_manager):
+    """Sets the expiration manager with which this manager will interact.
+
+    Args:
+      expiration_manager: The _interfaces.ExpirationManager associated with the
+        current operation.
+    """
+    raise NotImplementedError()
+
+
+class _TerminationManager(TerminationManager):
+  """An implementation of TerminationManager."""
+
+  def __init__(self, predicate, action, pool):
+    """Constructor.
+
+    Args:
+      predicate: One of _invocation_completion_predicate or
+        _service_completion_predicate to be used to determine when the operation
+        has completed.
+      action: A behavior to pass the operation outcome on operation termination.
+      pool: A thread pool.
+    """
+    self._predicate = predicate
+    self._action = action
+    self._pool = pool
+    self._expiration_manager = None
+
+    self.outcome = None
+    self._callbacks = []
+
+    self._emission_complete = False
+    self._transmission_complete = False
+    self._reception_complete = False
+    self._ingestion_complete = False
+
+  def set_expiration_manager(self, expiration_manager):
+    self._expiration_manager = expiration_manager
+
+  def _terminate_internal_only(self, outcome):
+    """Terminates the operation.
+
+    Args:
+      outcome: A base.Outcome describing the outcome of the operation.
+    """
+    self.outcome = outcome
+    callbacks = list(self._callbacks)
+    self._callbacks = None
+
+    act = callable_util.with_exceptions_logged(
+        self._action, _constants.INTERNAL_ERROR_LOG_MESSAGE)
+
+    if outcome is base.Outcome.LOCAL_FAILURE:
+      self._pool.submit(act, outcome)
+    else:
+      def call_callbacks_and_act(callbacks, outcome):
+        for callback in callbacks:
+          callback_outcome = callable_util.call_logging_exceptions(
+              callback, _constants.TERMINATION_CALLBACK_EXCEPTION_LOG_MESSAGE,
+              outcome)
+          if callback_outcome.exception is not None:
+            outcome = base.Outcome.LOCAL_FAILURE
+            break
+        act(outcome)
+
+      self._pool.submit(
+          callable_util.with_exceptions_logged(
+              call_callbacks_and_act, _constants.INTERNAL_ERROR_LOG_MESSAGE),
+          callbacks, outcome)
+
+  def _terminate_and_notify(self, outcome):
+    self._terminate_internal_only(outcome)
+    self._expiration_manager.terminate()
+
+  def _perhaps_complete(self):
+    if self._predicate(
+        self._emission_complete, self._transmission_complete,
+        self._reception_complete, self._ingestion_complete):
+      self._terminate_and_notify(base.Outcome.COMPLETED)
+      return True
+    else:
+      return False
+
+  def is_active(self):
+    """See _interfaces.TerminationManager.is_active for specification."""
+    return self.outcome is None
+
+  def add_callback(self, callback):
+    """See _interfaces.TerminationManager.add_callback for specification."""
+    if self.outcome is None:
+      self._callbacks.append(callback)
+      return None
+    else:
+      return self.outcome
+
+  def emission_complete(self):
+    """See superclass method for specification."""
+    if self.outcome is None:
+      self._emission_complete = True
+      self._perhaps_complete()
+
+  def transmission_complete(self):
+    """See superclass method for specification."""
+    if self.outcome is None:
+      self._transmission_complete = True
+      return self._perhaps_complete()
+    else:
+      return False
+
+  def reception_complete(self):
+    """See superclass method for specification."""
+    if self.outcome is None:
+      self._reception_complete = True
+      self._perhaps_complete()
+
+  def ingestion_complete(self):
+    """See superclass method for specification."""
+    if self.outcome is None:
+      self._ingestion_complete = True
+      self._perhaps_complete()
+
+  def expire(self):
+    """See _interfaces.TerminationManager.expire for specification."""
+    self._terminate_internal_only(base.Outcome.EXPIRED)
+
+  def abort(self, outcome):
+    """See _interfaces.TerminationManager.abort for specification."""
+    self._terminate_and_notify(outcome)
+
+
+def invocation_termination_manager(action, pool):
+  """Creates a TerminationManager appropriate for invocation-side use.
+
+  Args:
+    action: An action to call on operation termination.
+    pool: A thread pool in which to execute the passed action and any
+      termination callbacks that are registered during the operation.
+
+  Returns:
+    A TerminationManager appropriate for invocation-side use.
+  """
+  return _TerminationManager(_invocation_completion_predicate, action, pool)
+
+
+def service_termination_manager(action, pool):
+  """Creates a TerminationManager appropriate for service-side use.
+
+  Args:
+    action: An action to call on operation termination.
+    pool: A thread pool in which to execute the passed action and any
+      termination callbacks that are registered during the operation.
+
+  Returns:
+    A TerminationManager appropriate for service-side use.
+  """
+  return _TerminationManager(_service_completion_predicate, action, pool)
diff --git a/src/python/grpcio/grpc/framework/core/_transmission.py b/src/python/grpcio/grpc/framework/core/_transmission.py
new file mode 100644
index 0000000000000000000000000000000000000000..03644f4d491a020503ffb7574ae5f7fceb8c23d6
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/_transmission.py
@@ -0,0 +1,294 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""State and behavior for ticket transmission during an operation."""
+
+from grpc.framework.core import _constants
+from grpc.framework.core import _interfaces
+from grpc.framework.foundation import callable_util
+from grpc.framework.interfaces.base import base
+from grpc.framework.interfaces.links import links
+
+_TRANSMISSION_EXCEPTION_LOG_MESSAGE = 'Exception during transmission!'
+
+
+def _explode_completion(completion):
+  if completion is None:
+    return None, None, None, None
+  else:
+    return (
+        completion.terminal_metadata, completion.code, completion.message,
+        links.Ticket.Termination.COMPLETION)
+
+
+class TransmissionManager(_interfaces.TransmissionManager):
+  """An _interfaces.TransmissionManager that sends links.Tickets."""
+
+  def __init__(
+      self, operation_id, ticket_sink, lock, pool, termination_manager):
+    """Constructor.
+
+    Args:
+      operation_id: The operation's ID.
+      ticket_sink: A callable that accepts tickets and sends them to the other
+        side of the operation.
+      lock: The operation-servicing-wide lock object.
+      pool: A thread pool in which the work of transmitting tickets will be
+        performed.
+      termination_manager: The _interfaces.TerminationManager associated with
+        this operation.
+    """
+    self._lock = lock
+    self._pool = pool
+    self._ticket_sink = ticket_sink
+    self._operation_id = operation_id
+    self._termination_manager = termination_manager
+    self._expiration_manager = None
+
+    self._lowest_unused_sequence_number = 0
+    self._remote_allowance = 1
+    self._remote_complete = False
+    self._timeout = None
+    self._local_allowance = 0
+    self._initial_metadata = None
+    self._payloads = []
+    self._completion = None
+    self._aborted = False
+    self._abortion_outcome = None
+    self._transmitting = False
+
+  def set_expiration_manager(self, expiration_manager):
+    """Sets the ExpirationManager with which this manager will cooperate."""
+    self._expiration_manager = expiration_manager
+
+  def _next_ticket(self):
+    """Creates the next ticket to be transmitted.
+
+    Returns:
+      A links.Ticket to be sent to the other side of the operation or None if
+        there is nothing to be sent at this time.
+    """
+    if self._aborted:
+      if self._abortion_outcome is None:
+        return None
+      else:
+        termination = _constants.ABORTION_OUTCOME_TO_TICKET_TERMINATION[
+            self._abortion_outcome]
+        if termination is None:
+          return None
+        else:
+          self._abortion_outcome = None
+          return links.Ticket(
+              self._operation_id, self._lowest_unused_sequence_number, None,
+              None, None, None, None, None, None, None, None, None,
+              termination, None)
+
+    action = False
+    # TODO(nathaniel): Support other subscriptions.
+    local_subscription = links.Ticket.Subscription.FULL
+    timeout = self._timeout
+    if timeout is not None:
+      self._timeout = None
+      action = True
+    if self._local_allowance <= 0:
+      allowance = None
+    else:
+      allowance = self._local_allowance
+      self._local_allowance = 0
+      action = True
+    initial_metadata = self._initial_metadata
+    if initial_metadata is not None:
+      self._initial_metadata = None
+      action = True
+    if not self._payloads or self._remote_allowance <= 0:
+      payload = None
+    else:
+      payload = self._payloads.pop(0)
+      self._remote_allowance -= 1
+      action = True
+    if self._completion is None or self._payloads:
+      terminal_metadata, code, message, termination = None, None, None, None
+    else:
+      terminal_metadata, code, message, termination = _explode_completion(
+          self._completion)
+      self._completion = None
+      action = True
+
+    if action:
+      ticket = links.Ticket(
+          self._operation_id, self._lowest_unused_sequence_number, None, None,
+          local_subscription, timeout, allowance, initial_metadata, payload,
+          terminal_metadata, code, message, termination, None)
+      self._lowest_unused_sequence_number += 1
+      return ticket
+    else:
+      return None
+
+  def _transmit(self, ticket):
+    """Commences the transmission loop sending tickets.
+
+    Args:
+      ticket: A links.Ticket to be sent to the other side of the operation.
+    """
+    def transmit(ticket):
+      while True:
+        transmission_outcome = callable_util.call_logging_exceptions(
+            self._ticket_sink, _TRANSMISSION_EXCEPTION_LOG_MESSAGE, ticket)
+        if transmission_outcome.exception is None:
+          with self._lock:
+            if ticket.termination is links.Ticket.Termination.COMPLETION:
+              self._termination_manager.transmission_complete()
+            ticket = self._next_ticket()
+            if ticket is None:
+              self._transmitting = False
+              return
+        else:
+          with self._lock:
+            if self._termination_manager.outcome is None:
+              self._termination_manager.abort(base.Outcome.TRANSMISSION_FAILURE)
+              self._expiration_manager.terminate()
+            return
+
+    self._pool.submit(callable_util.with_exceptions_logged(
+        transmit, _constants.INTERNAL_ERROR_LOG_MESSAGE), ticket)
+    self._transmitting = True
+
+  def kick_off(
+      self, group, method, timeout, initial_metadata, payload, completion,
+      allowance):
+    """See _interfaces.TransmissionManager.kickoff for specification."""
+    # TODO(nathaniel): Support other subscriptions.
+    subscription = links.Ticket.Subscription.FULL
+    terminal_metadata, code, message, termination = _explode_completion(
+        completion)
+    self._remote_allowance = 1 if payload is None else 0
+    ticket = links.Ticket(
+        self._operation_id, 0, group, method, subscription, timeout, allowance,
+        initial_metadata, payload, terminal_metadata, code, message,
+        termination, None)
+    self._lowest_unused_sequence_number = 1
+    self._transmit(ticket)
+
+  def advance(self, initial_metadata, payload, completion, allowance):
+    """See _interfaces.TransmissionManager.advance for specification."""
+    effective_initial_metadata = initial_metadata
+    effective_payload = payload
+    effective_completion = completion
+    if allowance is not None and not self._remote_complete:
+      effective_allowance = allowance
+    else:
+      effective_allowance = None
+    if self._transmitting:
+      if effective_initial_metadata is not None:
+        self._initial_metadata = effective_initial_metadata
+      if effective_payload is not None:
+        self._payloads.append(effective_payload)
+      if effective_completion is not None:
+        self._completion = effective_completion
+      if effective_allowance is not None:
+        self._local_allowance += effective_allowance
+    else:
+      if effective_payload is not None:
+        if 0 < self._remote_allowance:
+          ticket_payload = effective_payload
+          self._remote_allowance -= 1
+        else:
+          self._payloads.append(effective_payload)
+          ticket_payload = None
+      else:
+        ticket_payload = None
+      if effective_completion is not None and not self._payloads:
+        ticket_completion = effective_completion
+      else:
+        self._completion = effective_completion
+        ticket_completion = None
+      if any(
+          (effective_initial_metadata, ticket_payload, ticket_completion,
+           effective_allowance)):
+        terminal_metadata, code, message, termination = _explode_completion(
+            completion)
+        ticket = links.Ticket(
+            self._operation_id, self._lowest_unused_sequence_number, None, None,
+            None, None, allowance, effective_initial_metadata, ticket_payload,
+            terminal_metadata, code, message, termination, None)
+        self._lowest_unused_sequence_number += 1
+        self._transmit(ticket)
+
+  def timeout(self, timeout):
+    """See _interfaces.TransmissionManager.timeout for specification."""
+    if self._transmitting:
+      self._timeout = timeout
+    else:
+      ticket = links.Ticket(
+          self._operation_id, self._lowest_unused_sequence_number, None, None,
+          None, timeout, None, None, None, None, None, None, None, None)
+      self._lowest_unused_sequence_number += 1
+      self._transmit(ticket)
+
+  def allowance(self, allowance):
+    """See _interfaces.TransmissionManager.allowance for specification."""
+    if self._transmitting or not self._payloads:
+      self._remote_allowance += allowance
+    else:
+      self._remote_allowance += allowance - 1
+      payload = self._payloads.pop(0)
+      if self._payloads:
+        completion = None
+      else:
+        completion = self._completion
+        self._completion = None
+      terminal_metadata, code, message, termination = _explode_completion(
+          completion)
+      ticket = links.Ticket(
+          self._operation_id, self._lowest_unused_sequence_number, None, None,
+          None, None, None, None, payload, terminal_metadata, code, message,
+          termination, None)
+      self._lowest_unused_sequence_number += 1
+      self._transmit(ticket)
+
+  def remote_complete(self):
+    """See _interfaces.TransmissionManager.remote_complete for specification."""
+    self._remote_complete = True
+    self._local_allowance = 0
+
+  def abort(self, outcome):
+    """See _interfaces.TransmissionManager.abort for specification."""
+    if self._transmitting:
+      self._aborted, self._abortion_outcome = True, outcome
+    else:
+      self._aborted = True
+      if outcome is not None:
+        termination = _constants.ABORTION_OUTCOME_TO_TICKET_TERMINATION[
+            outcome]
+        if termination is not None:
+          ticket = links.Ticket(
+              self._operation_id, self._lowest_unused_sequence_number, None,
+              None, None, None, None, None, None, None, None, None,
+              termination, None)
+          self._transmit(ticket)
diff --git a/src/ruby/bin/interop/test/cpp/interop/test_services.rb b/src/python/grpcio/grpc/framework/core/_utilities.py
similarity index 59%
rename from src/ruby/bin/interop/test/cpp/interop/test_services.rb
rename to src/python/grpcio/grpc/framework/core/_utilities.py
index 5a3146c581b24b2ab7656f0237c1071e6cac963f..5b0d798751710fc61fdf7d6c6aa084803b670d9c 100644
--- a/src/ruby/bin/interop/test/cpp/interop/test_services.rb
+++ b/src/python/grpcio/grpc/framework/core/_utilities.py
@@ -27,34 +27,20 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# Source: test/cpp/interop/test.proto for package 'grpc.testing'
+"""Package-internal utilities."""
 
-require 'grpc'
-require 'test/cpp/interop/test'
+import collections
 
-module Grpc
-  module Testing
-    module TestService
 
-      # TODO: add proto service documentation here
-      class Service
+class ServicerPackage(
+    collections.namedtuple(
+        'ServicerPackage', ('servicer', 'default_timeout', 'maximum_timeout'))):
+  """A trivial bundle class.
 
-        include GRPC::GenericService
-
-        self.marshal_class_method = :encode
-        self.unmarshal_class_method = :decode
-        self.service_name = 'grpc.testing.TestService'
-
-        rpc :EmptyCall, Empty, Empty
-        rpc :UnaryCall, SimpleRequest, SimpleResponse
-        rpc :StreamingOutputCall, StreamingOutputCallRequest, stream(StreamingOutputCallResponse)
-        rpc :StreamingInputCall, stream(StreamingInputCallRequest), StreamingInputCallResponse
-        rpc :FullDuplexCall, stream(StreamingOutputCallRequest), stream(StreamingOutputCallResponse)
-        rpc :HalfDuplexCall, stream(StreamingOutputCallRequest), stream(StreamingOutputCallResponse)
-      end
-
-      Stub = Service.rpc_stub_class
-    end
-  end
-end
+  Attributes:
+    servicer: A base.Servicer.
+    default_timeout: A float indicating the length of time in seconds to allow
+      for an operation invoked without a timeout.
+    maximum_timeout: A float indicating the maximum length of time in seconds to
+      allow for an operation.
+  """
diff --git a/src/python/grpcio/grpc/framework/core/implementations.py b/src/python/grpcio/grpc/framework/core/implementations.py
new file mode 100644
index 0000000000000000000000000000000000000000..364a7faed4093a7cfd92070dea9de423b386e0a1
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/core/implementations.py
@@ -0,0 +1,62 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Entry points into the ticket-exchange-based base layer implementation."""
+
+# base and links are referenced from specification in this module.
+from grpc.framework.core import _end
+from grpc.framework.interfaces.base import base  # pylint: disable=unused-import
+from grpc.framework.interfaces.links import links  # pylint: disable=unused-import
+
+
+def invocation_end_link():
+  """Creates a base.End-links.Link suitable for operation invocation.
+
+  Returns:
+    An object that is both a base.End and a links.Link, that supports operation
+      invocation, and that translates operation invocation into ticket exchange.
+  """
+  return _end.serviceless_end_link()
+
+
+def service_end_link(servicer, default_timeout, maximum_timeout):
+  """Creates a base.End-links.Link suitable for operation service.
+
+  Args:
+    servicer: A base.Servicer for servicing operations.
+    default_timeout: A length of time in seconds to be used as the default
+      time alloted for a single operation.
+    maximum_timeout: A length of time in seconds to be used as the maximum
+      time alloted for a single operation.
+
+  Returns:
+    An object that is both a base.End and a links.Link and that services
+      operations that arrive at it through ticket exchange.
+  """
+  return _end.serviceful_end_link(servicer, default_timeout, maximum_timeout)
diff --git a/src/ruby/bin/interop/test/cpp/interop/empty.rb b/src/python/grpcio/grpc/framework/interfaces/base/__init__.py
similarity index 80%
rename from src/ruby/bin/interop/test/cpp/interop/empty.rb
rename to src/python/grpcio/grpc/framework/interfaces/base/__init__.py
index 3579fa5ded80e6d32b500947d0e202857865f2f0..708651910607ffb686d781713f6893567821b9fd 100644
--- a/src/ruby/bin/interop/test/cpp/interop/empty.rb
+++ b/src/python/grpcio/grpc/framework/interfaces/base/__init__.py
@@ -27,18 +27,4 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-# Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: test/cpp/interop/empty.proto
 
-require 'google/protobuf'
-
-Google::Protobuf::DescriptorPool.generated_pool.build do
-  add_message "grpc.testing.Empty" do
-  end
-end
-
-module Grpc
-  module Testing
-    Empty = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Empty").msgclass
-  end
-end
diff --git a/src/python/grpcio/grpc/framework/interfaces/base/base.py b/src/python/grpcio/grpc/framework/interfaces/base/base.py
new file mode 100644
index 0000000000000000000000000000000000000000..76e0a5bdaeade89b51345dc570b0e9b9e89c43f5
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/interfaces/base/base.py
@@ -0,0 +1,290 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""The base interface of RPC Framework.
+
+Implementations of this interface support the conduct of "operations":
+exchanges between two distinct ends of an arbitrary number of data payloads
+and metadata such as a name for the operation, initial and terminal metadata
+in each direction, and flow control. These operations may be used for transfers
+of data, remote procedure calls, status indication, or anything else
+applications choose.
+"""
+
+# threading is referenced from specification in this module.
+import abc
+import enum
+import threading
+
+# abandonment is referenced from specification in this module.
+from grpc.framework.foundation import abandonment  # pylint: disable=unused-import
+
+
+class NoSuchMethodError(Exception):
+  """Indicates that an unrecognized operation has been called."""
+
+
+@enum.unique
+class Outcome(enum.Enum):
+  """Operation outcomes."""
+
+  COMPLETED = 'completed'
+  CANCELLED = 'cancelled'
+  EXPIRED = 'expired'
+  LOCAL_SHUTDOWN = 'local shutdown'
+  REMOTE_SHUTDOWN = 'remote shutdown'
+  RECEPTION_FAILURE = 'reception failure'
+  TRANSMISSION_FAILURE = 'transmission failure'
+  LOCAL_FAILURE = 'local failure'
+  REMOTE_FAILURE = 'remote failure'
+
+
+class Completion(object):
+  """An aggregate of the values exchanged upon operation completion.
+
+  Attributes:
+    terminal_metadata: A terminal metadata value for the operaton.
+    code: A code value for the operation.
+    message: A message value for the operation.
+  """
+  __metaclass__ = abc.ABCMeta
+
+
+class OperationContext(object):
+  """Provides operation-related information and action."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def outcome(self):
+    """Indicates the operation's outcome (or that the operation is ongoing).
+
+    Returns:
+      None if the operation is still active or the Outcome value for the
+        operation if it has terminated.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def add_termination_callback(self, callback):
+    """Adds a function to be called upon operation termination.
+
+    Args:
+      callback: A callable to be passed an Outcome value on operation
+        termination.
+
+    Returns:
+      None if the operation has not yet terminated and the passed callback will
+        later be called when it does terminate, or if the operation has already
+        terminated an Outcome value describing the operation termination and the
+        passed callback will not be called as a result of this method call.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def time_remaining(self):
+    """Describes the length of allowed time remaining for the operation.
+
+    Returns:
+      A nonnegative float indicating the length of allowed time in seconds
+      remaining for the operation to complete before it is considered to have
+      timed out. Zero is returned if the operation has terminated.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def cancel(self):
+    """Cancels the operation if the operation has not yet terminated."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def fail(self, exception):
+    """Indicates that the operation has failed.
+
+    Args:
+      exception: An exception germane to the operation failure. May be None.
+    """
+    raise NotImplementedError()
+
+
+class Operator(object):
+  """An interface through which to participate in an operation."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def advance(
+      self, initial_metadata=None, payload=None, completion=None,
+      allowance=None):
+    """Progresses the operation.
+
+    Args:
+      initial_metadata: An initial metadata value. Only one may ever be
+        communicated in each direction for an operation, and they must be
+        communicated no later than either the first payload or the completion.
+      payload: A payload value.
+      completion: A Completion value. May only ever be non-None once in either
+        direction, and no payloads may be passed after it has been communicated.
+      allowance: A positive integer communicating the number of additional
+        payloads allowed to be passed by the remote side of the operation.
+    """
+    raise NotImplementedError()
+
+
+class Subscription(object):
+  """Describes customer code's interest in values from the other side.
+
+  Attributes:
+    kind: A Kind value describing the overall kind of this value.
+    termination_callback: A callable to be passed the Outcome associated with
+      the operation after it has terminated. Must be non-None if kind is
+      Kind.TERMINATION_ONLY. Must be None otherwise.
+    allowance: A callable behavior that accepts positive integers representing
+      the number of additional payloads allowed to be passed to the other side
+      of the operation. Must be None if kind is Kind.FULL. Must not be None
+      otherwise.
+    operator: An Operator to be passed values from the other side of the
+      operation. Must be non-None if kind is Kind.FULL. Must be None otherwise.
+  """
+
+  @enum.unique
+  class Kind(enum.Enum):
+
+    NONE = 'none'
+    TERMINATION_ONLY = 'termination only'
+    FULL = 'full'
+
+
+class Servicer(object):
+  """Interface for service implementations."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def service(self, group, method, context, output_operator):
+    """Services an operation.
+
+    Args:
+      group: The group identifier of the operation to be serviced.
+      method: The method identifier of the operation to be serviced.
+      context: An OperationContext object affording contextual information and
+        actions.
+      output_operator: An Operator that will accept output values of the
+        operation.
+
+    Returns:
+      A Subscription via which this object may or may not accept more values of
+        the operation.
+
+    Raises:
+      NoSuchMethodError: If this Servicer does not handle operations with the
+        given group and method.
+      abandonment.Abandoned: If the operation has been aborted and there no
+        longer is any reason to service the operation.
+    """
+    raise NotImplementedError()
+
+
+class End(object):
+  """Common type for entry-point objects on both sides of an operation."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def start(self):
+    """Starts this object's service of operations."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def stop(self, grace):
+    """Stops this object's service of operations.
+
+    This object will refuse service of new operations as soon as this method is
+    called but operations under way at the time of the call may be given a
+    grace period during which they are allowed to finish.
+
+    Args:
+      grace: A duration of time in seconds to allow ongoing operations to
+        terminate before being forcefully terminated by the stopping of this
+        End. May be zero to terminate all ongoing operations and immediately
+        stop.
+
+    Returns:
+      A threading.Event that will be set to indicate all operations having
+        terminated and this End having completely stopped. The returned event
+        may not be set until after the full grace period (if some ongoing
+        operation continues for the full length of the period) or it may be set
+        much sooner (if for example this End had no operations in progress at
+        the time its stop method was called).
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def operate(
+      self, group, method, subscription, timeout, initial_metadata=None,
+      payload=None, completion=None):
+    """Commences an operation.
+
+    Args:
+      group: The group identifier of the invoked operation.
+      method: The method identifier of the invoked operation.
+      subscription: A Subscription to which the results of the operation will be
+        passed.
+      timeout: A length of time in seconds to allow for the operation.
+      initial_metadata: An initial metadata value to be sent to the other side
+        of the operation. May be None if the initial metadata will be later
+        passed via the returned operator or if there will be no initial metadata
+        passed at all.
+      payload: An initial payload for the operation.
+      completion: A Completion value indicating the end of transmission to the
+        other side of the operation.
+
+    Returns:
+      A pair of objects affording information about the operation and action
+        continuing the operation. The first element of the returned pair is an
+        OperationContext for the operation and the second element of the
+        returned pair is an Operator to which operation values not passed in
+        this call should later be passed.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def operation_stats(self):
+    """Reports the number of terminated operations broken down by outcome.
+
+    Returns:
+      A dictionary from Outcome value to an integer identifying the number
+        of operations that terminated with that outcome.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def add_idle_action(self, action):
+    """Adds an action to be called when this End has no ongoing operations.
+
+    Args:
+      action: A callable that accepts no arguments.
+    """
+    raise NotImplementedError()
diff --git a/src/python/grpcio/grpc/framework/interfaces/base/utilities.py b/src/python/grpcio/grpc/framework/interfaces/base/utilities.py
new file mode 100644
index 0000000000000000000000000000000000000000..a9ee1a098169aa5b8487286e0e73bcdf672aa5d4
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/interfaces/base/utilities.py
@@ -0,0 +1,79 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Utilities for use with the base interface of RPC Framework."""
+
+import collections
+
+from grpc.framework.interfaces.base import base
+
+
+class _Completion(
+    base.Completion,
+    collections.namedtuple(
+        '_Completion', ('terminal_metadata', 'code', 'message',))):
+  """A trivial implementation of base.Completion."""
+
+
+class _Subscription(
+    base.Subscription,
+    collections.namedtuple(
+        '_Subscription',
+        ('kind', 'termination_callback', 'allowance', 'operator',))):
+  """A trivial implementation of base.Subscription."""
+
+_NONE_SUBSCRIPTION = _Subscription(
+    base.Subscription.Kind.NONE, None, None, None)
+
+
+def completion(terminal_metadata, code, message):
+  """Creates a base.Completion aggregating the given operation values.
+
+  Args:
+    terminal_metadata: A terminal metadata value for an operaton.
+    code: A code value for an operation.
+    message: A message value for an operation.
+
+  Returns:
+    A base.Completion aggregating the given operation values.
+  """
+  return _Completion(terminal_metadata, code, message)
+
+
+def full_subscription(operator):
+  """Creates a "full" base.Subscription for the given base.Operator.
+
+  Args:
+    operator: A base.Operator to be used in an operation.
+
+  Returns:
+    A base.Subscription of kind base.Subscription.Kind.FULL wrapping the given
+      base.Operator.
+  """
+  return _Subscription(base.Subscription.Kind.FULL, None, None, operator)
diff --git a/src/python/grpcio/grpc/framework/interfaces/face/__init__.py b/src/python/grpcio/grpc/framework/interfaces/face/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..708651910607ffb686d781713f6893567821b9fd
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/interfaces/face/__init__.py
@@ -0,0 +1,30 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/src/python/grpcio/grpc/framework/interfaces/face/face.py b/src/python/grpcio/grpc/framework/interfaces/face/face.py
new file mode 100644
index 0000000000000000000000000000000000000000..948e7505b6d41dd25b90a9796ed80fe260750f54
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/interfaces/face/face.py
@@ -0,0 +1,933 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Interfaces defining the Face layer of RPC Framework."""
+
+import abc
+import collections
+import enum
+
+# cardinality, style, abandonment, future, and stream are
+# referenced from specification in this module.
+from grpc.framework.common import cardinality  # pylint: disable=unused-import
+from grpc.framework.common import style  # pylint: disable=unused-import
+from grpc.framework.foundation import abandonment  # pylint: disable=unused-import
+from grpc.framework.foundation import future  # pylint: disable=unused-import
+from grpc.framework.foundation import stream  # pylint: disable=unused-import
+
+
+class NoSuchMethodError(Exception):
+  """Raised by customer code to indicate an unrecognized method.
+
+  Attributes:
+    group: The group of the unrecognized method.
+    name: The name of the unrecognized method.
+  """
+
+  def __init__(self, group, method):
+    """Constructor.
+
+    Args:
+      group: The group identifier of the unrecognized RPC name.
+      method: The method identifier of the unrecognized RPC name.
+    """
+    super(NoSuchMethodError, self).__init__()
+    self.group = group
+    self.method = method
+
+  def __repr__(self):
+    return 'face.NoSuchMethodError(%s, %s)' % (self.group, self.method,)
+
+
+class Abortion(
+    collections.namedtuple(
+        'Abortion',
+        ('kind', 'initial_metadata', 'terminal_metadata', 'code', 'details',))):
+  """A value describing RPC abortion.
+
+  Attributes:
+    kind: A Kind value identifying how the RPC failed.
+    initial_metadata: The initial metadata from the other side of the RPC or
+      None if no initial metadata value was received.
+    terminal_metadata: The terminal metadata from the other side of the RPC or
+      None if no terminal metadata value was received.
+    code: The code value from the other side of the RPC or None if no code value
+      was received.
+    details: The details value from the other side of the RPC or None if no
+      details value was received.
+  """
+
+  @enum.unique
+  class Kind(enum.Enum):
+    """Types of RPC abortion."""
+
+    CANCELLED = 'cancelled'
+    EXPIRED = 'expired'
+    LOCAL_SHUTDOWN = 'local shutdown'
+    REMOTE_SHUTDOWN = 'remote shutdown'
+    NETWORK_FAILURE = 'network failure'
+    LOCAL_FAILURE = 'local failure'
+    REMOTE_FAILURE = 'remote failure'
+
+
+class AbortionError(Exception):
+  """Common super type for exceptions indicating RPC abortion.
+
+    initial_metadata: The initial metadata from the other side of the RPC or
+      None if no initial metadata value was received.
+    terminal_metadata: The terminal metadata from the other side of the RPC or
+      None if no terminal metadata value was received.
+    code: The code value from the other side of the RPC or None if no code value
+      was received.
+    details: The details value from the other side of the RPC or None if no
+      details value was received.
+  """
+  __metaclass__ = abc.ABCMeta
+
+  def __init__(self, initial_metadata, terminal_metadata, code, details):
+    super(AbortionError, self).__init__()
+    self.initial_metadata = initial_metadata
+    self.terminal_metadata = terminal_metadata
+    self.code = code
+    self.details = details
+
+
+class CancellationError(AbortionError):
+  """Indicates that an RPC has been cancelled."""
+
+
+class ExpirationError(AbortionError):
+  """Indicates that an RPC has expired ("timed out")."""
+
+
+class LocalShutdownError(AbortionError):
+  """Indicates that an RPC has terminated due to local shutdown of RPCs."""
+
+
+class RemoteShutdownError(AbortionError):
+  """Indicates that an RPC has terminated due to remote shutdown of RPCs."""
+
+
+class NetworkError(AbortionError):
+  """Indicates that some error occurred on the network."""
+
+
+class LocalError(AbortionError):
+  """Indicates that an RPC has terminated due to a local defect."""
+
+
+class RemoteError(AbortionError):
+  """Indicates that an RPC has terminated due to a remote defect."""
+
+
+class RpcContext(object):
+  """Provides RPC-related information and action."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def is_active(self):
+    """Describes whether the RPC is active or has terminated."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def time_remaining(self):
+    """Describes the length of allowed time remaining for the RPC.
+
+    Returns:
+      A nonnegative float indicating the length of allowed time in seconds
+      remaining for the RPC to complete before it is considered to have timed
+      out.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def add_abortion_callback(self, abortion_callback):
+    """Registers a callback to be called if the RPC is aborted.
+
+    Args:
+      abortion_callback: A callable to be called and passed an Abortion value
+        in the event of RPC abortion.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def cancel(self):
+    """Cancels the RPC.
+
+    Idempotent and has no effect if the RPC has already terminated.
+    """
+    raise NotImplementedError()
+
+
+class Call(RpcContext):
+  """Invocation-side utility object for an RPC."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def initial_metadata(self):
+    """Accesses the initial metadata from the service-side of the RPC.
+
+    This method blocks until the value is available or is known not to have been
+    emitted from the service-side of the RPC.
+
+    Returns:
+      The initial metadata object emitted by the service-side of the RPC, or
+        None if there was no such value.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def terminal_metadata(self):
+    """Accesses the terminal metadata from the service-side of the RPC.
+
+    This method blocks until the value is available or is known not to have been
+    emitted from the service-side of the RPC.
+
+    Returns:
+      The terminal metadata object emitted by the service-side of the RPC, or
+        None if there was no such value.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def code(self):
+    """Accesses the code emitted by the service-side of the RPC.
+
+    This method blocks until the value is available or is known not to have been
+    emitted from the service-side of the RPC.
+
+    Returns:
+      The code object emitted by the service-side of the RPC, or None if there
+        was no such value.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def details(self):
+    """Accesses the details value emitted by the service-side of the RPC.
+
+    This method blocks until the value is available or is known not to have been
+    emitted from the service-side of the RPC.
+
+    Returns:
+      The details value emitted by the service-side of the RPC, or None if there
+        was no such value.
+    """
+    raise NotImplementedError()
+
+
+class ServicerContext(RpcContext):
+  """A context object passed to method implementations."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def invocation_metadata(self):
+    """Accesses the metadata from the invocation-side of the RPC.
+
+    This method blocks until the value is available or is known not to have been
+    emitted from the invocation-side of the RPC.
+
+    Returns:
+      The metadata object emitted by the invocation-side of the RPC, or None if
+        there was no such value.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def initial_metadata(self, initial_metadata):
+    """Accepts the service-side initial metadata value of the RPC.
+
+    This method need not be called by method implementations if they have no
+    service-side initial metadata to transmit.
+
+    Args:
+      initial_metadata: The service-side initial metadata value of the RPC to
+        be transmitted to the invocation side of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def terminal_metadata(self, terminal_metadata):
+    """Accepts the service-side terminal metadata value of the RPC.
+
+    This method need not be called by method implementations if they have no
+    service-side terminal metadata to transmit.
+
+    Args:
+      terminal_metadata: The service-side terminal metadata value of the RPC to
+        be transmitted to the invocation side of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def code(self, code):
+    """Accepts the service-side code of the RPC.
+
+    This method need not be called by method implementations if they have no
+    code to transmit.
+
+    Args:
+      code: The code of the RPC to be transmitted to the invocation side of the
+        RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def details(self, details):
+    """Accepts the service-side details of the RPC.
+
+    This method need not be called by method implementations if they have no
+    service-side details to transmit.
+
+    Args:
+      details: The service-side details value of the RPC to be transmitted to
+        the invocation side of the RPC.
+    """
+    raise NotImplementedError()
+
+
+class ResponseReceiver(object):
+  """Invocation-side object used to accept the output of an RPC."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def initial_metadata(self, initial_metadata):
+    """Receives the initial metadata from the service-side of the RPC.
+
+    Args:
+      initial_metadata: The initial metadata object emitted from the
+        service-side of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def response(self, response):
+    """Receives a response from the service-side of the RPC.
+
+    Args:
+      response: A response object emitted from the service-side of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def complete(self, terminal_metadata, code, details):
+    """Receives the completion values emitted from the service-side of the RPC.
+
+    Args:
+      terminal_metadata: The terminal metadata object emitted from the
+        service-side of the RPC.
+      code: The code object emitted from the service-side of the RPC.
+      details: The details object emitted from the service-side of the RPC.
+    """
+    raise NotImplementedError()
+
+
+class UnaryUnaryMultiCallable(object):
+  """Affords invoking a unary-unary RPC in any call style."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def __call__(
+      self, request, timeout, metadata=None, with_call=False):
+    """Synchronously invokes the underlying RPC.
+
+    Args:
+      request: The request value for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+      with_call: Whether or not to include return a Call for the RPC in addition
+        to the reponse.
+
+    Returns:
+      The response value for the RPC, and a Call for the RPC if with_call was
+        set to True at invocation.
+
+    Raises:
+      AbortionError: Indicating that the RPC was aborted.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def future(self, request, timeout, metadata=None):
+    """Asynchronously invokes the underlying RPC.
+
+    Args:
+      request: The request value for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and a future.Future. In the
+        event of RPC completion, the return Future's result value will be the
+        response value of the RPC. In the event of RPC abortion, the returned
+        Future's exception value will be an AbortionError.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event(
+      self, request, receiver, abortion_callback, timeout,
+      metadata=None):
+    """Asynchronously invokes the underlying RPC.
+
+    Args:
+      request: The request value for the RPC.
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      A Call for the RPC.
+    """
+    raise NotImplementedError()
+
+
+class UnaryStreamMultiCallable(object):
+  """Affords invoking a unary-stream RPC in any call style."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def __call__(self, request, timeout, metadata=None):
+    """Invokes the underlying RPC.
+
+    Args:
+      request: The request value for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and an iterator of response
+        values. Drawing response values from the returned iterator may raise
+        AbortionError indicating abortion of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event(
+      self, request, receiver, abortion_callback, timeout,
+      metadata=None):
+    """Asynchronously invokes the underlying RPC.
+
+    Args:
+      request: The request value for the RPC.
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      A Call object for the RPC.
+    """
+    raise NotImplementedError()
+
+
+class StreamUnaryMultiCallable(object):
+  """Affords invoking a stream-unary RPC in any call style."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def __call__(
+      self, request_iterator, timeout, metadata=None,
+      with_call=False):
+    """Synchronously invokes the underlying RPC.
+
+    Args:
+      request_iterator: An iterator that yields request values for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+      with_call: Whether or not to include return a Call for the RPC in addition
+        to the reponse.
+
+    Returns:
+      The response value for the RPC, and a Call for the RPC if with_call was
+        set to True at invocation.
+
+    Raises:
+      AbortionError: Indicating that the RPC was aborted.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def future(self, request_iterator, timeout, metadata=None):
+    """Asynchronously invokes the underlying RPC.
+
+    Args:
+      request_iterator: An iterator that yields request values for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and a future.Future. In the
+        event of RPC completion, the return Future's result value will be the
+        response value of the RPC. In the event of RPC abortion, the returned
+        Future's exception value will be an AbortionError.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event(
+      self, receiver, abortion_callback, timeout, metadata=None):
+    """Asynchronously invokes the underlying RPC.
+
+    Args:
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      A single object that is both a Call object for the RPC and a
+        stream.Consumer to which the request values of the RPC should be passed.
+    """
+    raise NotImplementedError()
+
+
+class StreamStreamMultiCallable(object):
+  """Affords invoking a stream-stream RPC in any call style."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def __call__(self, request_iterator, timeout, metadata=None):
+    """Invokes the underlying RPC.
+
+    Args:
+      request_iterator: An iterator that yields request values for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and an iterator of response
+        values. Drawing response values from the returned iterator may raise
+        AbortionError indicating abortion of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event(
+      self, receiver, abortion_callback, timeout, metadata=None):
+    """Asynchronously invokes the underlying RPC.
+
+    Args:
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of
+        the RPC.
+
+    Returns:
+      A single object that is both a Call object for the RPC and a
+        stream.Consumer to which the request values of the RPC should be passed.
+    """
+    raise NotImplementedError()
+
+
+class MethodImplementation(object):
+  """A sum type that describes a method implementation.
+
+  Attributes:
+    cardinality: A cardinality.Cardinality value.
+    style: A style.Service value.
+    unary_unary_inline: The implementation of the method as a callable value
+      that takes a request value and a ServicerContext object and returns a
+      response value. Only non-None if cardinality is
+      cardinality.Cardinality.UNARY_UNARY and style is style.Service.INLINE.
+    unary_stream_inline: The implementation of the method as a callable value
+      that takes a request value and a ServicerContext object and returns an
+      iterator of response values. Only non-None if cardinality is
+      cardinality.Cardinality.UNARY_STREAM and style is style.Service.INLINE.
+    stream_unary_inline: The implementation of the method as a callable value
+      that takes an iterator of request values and a ServicerContext object and
+      returns a response value. Only non-None if cardinality is
+      cardinality.Cardinality.STREAM_UNARY and style is style.Service.INLINE.
+    stream_stream_inline: The implementation of the method as a callable value
+      that takes an iterator of request values and a ServicerContext object and
+      returns an iterator of response values. Only non-None if cardinality is
+      cardinality.Cardinality.STREAM_STREAM and style is style.Service.INLINE.
+    unary_unary_event: The implementation of the method as a callable value that
+      takes a request value, a response callback to which to pass the response
+      value of the RPC, and a ServicerContext. Only non-None if cardinality is
+      cardinality.Cardinality.UNARY_UNARY and style is style.Service.EVENT.
+    unary_stream_event: The implementation of the method as a callable value
+      that takes a request value, a stream.Consumer to which to pass the
+      response values of the RPC, and a ServicerContext. Only non-None if
+      cardinality is cardinality.Cardinality.UNARY_STREAM and style is
+      style.Service.EVENT.
+    stream_unary_event: The implementation of the method as a callable value
+      that takes a response callback to which to pass the response value of the
+      RPC and a ServicerContext and returns a stream.Consumer to which the
+      request values of the RPC should be passed. Only non-None if cardinality
+      is cardinality.Cardinality.STREAM_UNARY and style is style.Service.EVENT.
+    stream_stream_event: The implementation of the method as a callable value
+      that takes a stream.Consumer to which to pass the response values of the
+      RPC and a ServicerContext and returns a stream.Consumer to which the
+      request values of the RPC should be passed. Only non-None if cardinality
+      is cardinality.Cardinality.STREAM_STREAM and style is
+      style.Service.EVENT.
+  """
+  __metaclass__ = abc.ABCMeta
+
+
+class MultiMethodImplementation(object):
+  """A general type able to service many methods."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def service(self, group, method, response_consumer, context):
+    """Services an RPC.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      response_consumer: A stream.Consumer to be called to accept the response
+        values of the RPC.
+      context: a ServicerContext object.
+
+    Returns:
+      A stream.Consumer with which to accept the request values of the RPC. The
+        consumer returned from this method may or may not be invoked to
+        completion: in the case of RPC abortion, RPC Framework will simply stop
+        passing values to this object. Implementations must not assume that this
+        object will be called to completion of the request stream or even called
+        at all.
+
+    Raises:
+      abandonment.Abandoned: May or may not be raised when the RPC has been
+        aborted.
+      NoSuchMethodError: If this MultiMethod does not recognize the given group
+        and name for the RPC and is not able to service the RPC.
+    """
+    raise NotImplementedError()
+
+
+class GenericStub(object):
+  """Affords RPC invocation via generic methods."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def blocking_unary_unary(
+      self, group, method, request, timeout, metadata=None,
+      with_call=False):
+    """Invokes a unary-request-unary-response method.
+
+    This method blocks until either returning the response value of the RPC
+    (in the event of RPC completion) or raising an exception (in the event of
+    RPC abortion).
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request: The request value for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+      with_call: Whether or not to include return a Call for the RPC in addition
+        to the reponse.
+
+    Returns:
+      The response value for the RPC, and a Call for the RPC if with_call was
+        set to True at invocation.
+
+    Raises:
+      AbortionError: Indicating that the RPC was aborted.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def future_unary_unary(
+      self, group, method, request, timeout, metadata=None):
+    """Invokes a unary-request-unary-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request: The request value for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and a future.Future. In the
+        event of RPC completion, the return Future's result value will be the
+        response value of the RPC. In the event of RPC abortion, the returned
+        Future's exception value will be an AbortionError.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def inline_unary_stream(
+      self, group, method, request, timeout, metadata=None):
+    """Invokes a unary-request-stream-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request: The request value for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and an iterator of response
+        values. Drawing response values from the returned iterator may raise
+        AbortionError indicating abortion of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def blocking_stream_unary(
+      self, group, method, request_iterator, timeout, metadata=None,
+      with_call=False):
+    """Invokes a stream-request-unary-response method.
+
+    This method blocks until either returning the response value of the RPC
+    (in the event of RPC completion) or raising an exception (in the event of
+    RPC abortion).
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request_iterator: An iterator that yields request values for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+      with_call: Whether or not to include return a Call for the RPC in addition
+        to the reponse.
+
+    Returns:
+      The response value for the RPC, and a Call for the RPC if with_call was
+        set to True at invocation.
+
+    Raises:
+      AbortionError: Indicating that the RPC was aborted.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def future_stream_unary(
+      self, group, method, request_iterator, timeout, metadata=None):
+    """Invokes a stream-request-unary-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request_iterator: An iterator that yields request values for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and a future.Future. In the
+        event of RPC completion, the return Future's result value will be the
+        response value of the RPC. In the event of RPC abortion, the returned
+        Future's exception value will be an AbortionError.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def inline_stream_stream(
+      self, group, method, request_iterator, timeout, metadata=None):
+    """Invokes a stream-request-stream-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request_iterator: An iterator that yields request values for the RPC.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      An object that is both a Call for the RPC and an iterator of response
+        values. Drawing response values from the returned iterator may raise
+        AbortionError indicating abortion of the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event_unary_unary(
+      self, group, method, request, receiver, abortion_callback, timeout,
+      metadata=None):
+    """Event-driven invocation of a unary-request-unary-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request: The request value for the RPC.
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      A Call for the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event_unary_stream(
+      self, group, method, request, receiver, abortion_callback, timeout,
+      metadata=None):
+    """Event-driven invocation of a unary-request-stream-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      request: The request value for the RPC.
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      A Call for the RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event_stream_unary(
+      self, group, method, receiver, abortion_callback, timeout,
+      metadata=None):
+    """Event-driven invocation of a unary-request-unary-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      A pair of a Call object for the RPC and a stream.Consumer to which the
+        request values of the RPC should be passed.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event_stream_stream(
+      self, group, method, receiver, abortion_callback, timeout,
+      metadata=None):
+    """Event-driven invocation of a unary-request-stream-response method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+      receiver: A ResponseReceiver to be passed the response data of the RPC.
+      abortion_callback: A callback to be called and passed an Abortion value
+        in the event of RPC abortion.
+      timeout: A duration of time in seconds to allow for the RPC.
+      metadata: A metadata value to be passed to the service-side of the RPC.
+
+    Returns:
+      A pair of a Call object for the RPC and a stream.Consumer to which the
+        request values of the RPC should be passed.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def unary_unary(self, group, method):
+    """Creates a UnaryUnaryMultiCallable for a unary-unary method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+
+    Returns:
+      A UnaryUnaryMultiCallable value for the named unary-unary method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def unary_stream(self, group, method):
+    """Creates a UnaryStreamMultiCallable for a unary-stream method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+
+    Returns:
+      A UnaryStreamMultiCallable value for the name unary-stream method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def stream_unary(self, group, method):
+    """Creates a StreamUnaryMultiCallable for a stream-unary method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+
+    Returns:
+      A StreamUnaryMultiCallable value for the named stream-unary method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def stream_stream(self, group, method):
+    """Creates a StreamStreamMultiCallable for a stream-stream method.
+
+    Args:
+      group: The group identifier of the RPC.
+      method: The method identifier of the RPC.
+
+    Returns:
+      A StreamStreamMultiCallable value for the named stream-stream method.
+    """
+    raise NotImplementedError()
+
+
+class DynamicStub(object):
+  """Affords RPC invocation via attributes corresponding to afforded methods.
+
+  Instances of this type may be scoped to a single group so that attribute
+  access is unambiguous.
+
+  Instances of this type respond to attribute access as follows: if the
+  requested attribute is the name of a unary-unary method, the value of the
+  attribute will be a UnaryUnaryMultiCallable with which to invoke an RPC; if
+  the requested attribute is the name of a unary-stream method, the value of the
+  attribute will be a UnaryStreamMultiCallable with which to invoke an RPC; if
+  the requested attribute is the name of a stream-unary method, the value of the
+  attribute will be a StreamUnaryMultiCallable with which to invoke an RPC; and
+  if the requested attribute is the name of a stream-stream method, the value of
+  the attribute will be a StreamStreamMultiCallable with which to invoke an RPC.
+  """
+  __metaclass__ = abc.ABCMeta
diff --git a/src/python/grpcio/grpc/framework/interfaces/face/utilities.py b/src/python/grpcio/grpc/framework/interfaces/face/utilities.py
new file mode 100644
index 0000000000000000000000000000000000000000..db2ec6ed87fb3e05a20653424f2fe36355bb7bbe
--- /dev/null
+++ b/src/python/grpcio/grpc/framework/interfaces/face/utilities.py
@@ -0,0 +1,178 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Utilities for RPC Framework's Face interface."""
+
+import collections
+
+# stream is referenced from specification in this module.
+from grpc.framework.common import cardinality
+from grpc.framework.common import style
+from grpc.framework.foundation import stream  # pylint: disable=unused-import
+from grpc.framework.interfaces.face import face
+
+
+class _MethodImplementation(
+    face.MethodImplementation,
+    collections.namedtuple(
+        '_MethodImplementation',
+        ['cardinality', 'style', 'unary_unary_inline', 'unary_stream_inline',
+         'stream_unary_inline', 'stream_stream_inline', 'unary_unary_event',
+         'unary_stream_event', 'stream_unary_event', 'stream_stream_event',])):
+  pass
+
+
+def unary_unary_inline(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a unary-unary RPC method as a callable value
+      that takes a request value and an face.ServicerContext object and
+      returns a response value.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.UNARY_UNARY, style.Service.INLINE, behavior,
+      None, None, None, None, None, None, None)
+
+
+def unary_stream_inline(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a unary-stream RPC method as a callable
+      value that takes a request value and an face.ServicerContext object and
+      returns an iterator of response values.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.UNARY_STREAM, style.Service.INLINE, None,
+      behavior, None, None, None, None, None, None)
+
+
+def stream_unary_inline(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a stream-unary RPC method as a callable
+      value that takes an iterator of request values and an
+      face.ServicerContext object and returns a response value.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.STREAM_UNARY, style.Service.INLINE, None, None,
+      behavior, None, None, None, None, None)
+
+
+def stream_stream_inline(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a stream-stream RPC method as a callable
+      value that takes an iterator of request values and an
+      face.ServicerContext object and returns an iterator of response values.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.STREAM_STREAM, style.Service.INLINE, None, None,
+      None, behavior, None, None, None, None)
+
+
+def unary_unary_event(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a unary-unary RPC method as a callable
+      value that takes a request value, a response callback to which to pass
+      the response value of the RPC, and an face.ServicerContext.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.UNARY_UNARY, style.Service.EVENT, None, None,
+      None, None, behavior, None, None, None)
+
+
+def unary_stream_event(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a unary-stream RPC method as a callable
+      value that takes a request value, a stream.Consumer to which to pass the
+      the response values of the RPC, and an face.ServicerContext.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.UNARY_STREAM, style.Service.EVENT, None, None,
+      None, None, None, behavior, None, None)
+
+
+def stream_unary_event(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a stream-unary RPC method as a callable
+      value that takes a response callback to which to pass the response value
+      of the RPC and an face.ServicerContext and returns a stream.Consumer to
+      which the request values of the RPC should be passed.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.STREAM_UNARY, style.Service.EVENT, None, None,
+      None, None, None, None, behavior, None)
+
+
+def stream_stream_event(behavior):
+  """Creates an face.MethodImplementation for the given behavior.
+
+  Args:
+    behavior: The implementation of a stream-stream RPC method as a callable
+      value that takes a stream.Consumer to which to pass the response values
+      of the RPC and an face.ServicerContext and returns a stream.Consumer to
+      which the request values of the RPC should be passed.
+
+  Returns:
+    An face.MethodImplementation derived from the given behavior.
+  """
+  return _MethodImplementation(
+      cardinality.Cardinality.STREAM_STREAM, style.Service.EVENT, None, None,
+      None, None, None, None, None, behavior)
diff --git a/src/python/grpcio/grpc/framework/interfaces/links/links.py b/src/python/grpcio/grpc/framework/interfaces/links/links.py
index 5ebbac8a6f29aef49ff73e523059c913dd94df7d..b98a30a39905c6d9df67d9ef21b49c24c2cdc937 100644
--- a/src/python/grpcio/grpc/framework/interfaces/links/links.py
+++ b/src/python/grpcio/grpc/framework/interfaces/links/links.py
@@ -34,12 +34,30 @@ import collections
 import enum
 
 
+class Transport(collections.namedtuple('Transport', ('kind', 'value',))):
+  """A sum type for handles to an underlying transport system.
+
+  Attributes:
+    kind: A Kind value identifying the kind of value being passed to or from
+      the underlying transport.
+    value: The value being passed through RPC Framework between the high-level
+      application and the underlying transport.
+  """
+
+  @enum.unique
+  class Kind(enum.Enum):
+    CALL_OPTION = 'call option'
+    SERVICER_CONTEXT = 'servicer context'
+    INVOCATION_CONTEXT = 'invocation context'
+
+
 class Ticket(
     collections.namedtuple(
         'Ticket',
-        ['operation_id', 'sequence_number', 'group', 'method', 'subscription',
+        ('operation_id', 'sequence_number', 'group', 'method', 'subscription',
          'timeout', 'allowance', 'initial_metadata', 'payload',
-         'terminal_metadata', 'code', 'message', 'termination'])):
+         'terminal_metadata', 'code', 'message', 'termination',
+         'transport',))):
   """A sum type for all values sent from a front to a back.
 
   Attributes:
@@ -81,6 +99,8 @@ class Ticket(
     termination: A Termination value describing the end of the operation, or
       None if the operation has not yet terminated. If set, no further tickets
       may be sent in the same direction.
+    transport: A Transport value or None, with further semantics being a matter
+      between high-level application and underlying transport.
   """
 
   @enum.unique
@@ -98,7 +118,7 @@ class Ticket(
     COMPLETION = 'completion'
     CANCELLATION = 'cancellation'
     EXPIRATION = 'expiration'
-    LOCAL_SHUTDOWN = 'local shutdown'
+    SHUTDOWN = 'shutdown'
     RECEPTION_FAILURE = 'reception failure'
     TRANSMISSION_FAILURE = 'transmission failure'
     LOCAL_FAILURE = 'local failure'
diff --git a/src/python/grpcio_test/grpc_test/_adapter/_links_test.py b/src/python/grpcio_test/grpc_test/_adapter/_links_test.py
index c4686b327a96e04fd8cce2a6492c7480f1d83e66..4077b8e3503a131a7eda0de2ccbcff9dbca85bc9 100644
--- a/src/python/grpcio_test/grpc_test/_adapter/_links_test.py
+++ b/src/python/grpcio_test/grpc_test/_adapter/_links_test.py
@@ -46,8 +46,8 @@ _TIMEOUT = 32
 # TODO(nathaniel): End-to-end metadata testing.
 def _transform_metadata(unused_metadata):
   return (
-      ('one unused key', 'one unused value'),
-      ('another unused key', 'another unused value'),
+      ('one_unused_key', 'one unused value'),
+      ('another_unused_key', 'another unused value'),
 )
 
 
diff --git a/src/python/grpcio_test/grpc_test/_adapter/_low_test.py b/src/python/grpcio_test/grpc_test/_adapter/_low_test.py
index 44fe760fbcf384a070df7d2fa69625d7a926bc51..70149127da336494df8792cb410fad3104d3d49a 100644
--- a/src/python/grpcio_test/grpc_test/_adapter/_low_test.py
+++ b/src/python/grpcio_test/grpc_test/_adapter/_low_test.py
@@ -52,7 +52,6 @@ def wait_for_events(completion_queues, deadline):
   def set_ith_result(i, completion_queue):
     result = completion_queue.next(deadline)
     with lock:
-      print i, completion_queue, result, time.time() - deadline
       results[i] = result
   for i, completion_queue in enumerate(completion_queues):
     thread = threading.Thread(target=set_ith_result,
@@ -80,10 +79,12 @@ class InsecureServerInsecureClient(unittest.TestCase):
     del self.client_channel
 
     self.client_completion_queue.shutdown()
-    while self.client_completion_queue.next().type != _types.EventType.QUEUE_SHUTDOWN:
+    while (self.client_completion_queue.next().type !=
+           _types.EventType.QUEUE_SHUTDOWN):
       pass
     self.server_completion_queue.shutdown()
-    while self.server_completion_queue.next().type != _types.EventType.QUEUE_SHUTDOWN:
+    while (self.server_completion_queue.next().type !=
+           _types.EventType.QUEUE_SHUTDOWN):
       pass
 
     del self.client_completion_queue
@@ -91,58 +92,68 @@ class InsecureServerInsecureClient(unittest.TestCase):
     del self.server
 
   def testEcho(self):
-    DEADLINE = time.time()+5
-    DEADLINE_TOLERANCE = 0.25
-    CLIENT_METADATA_ASCII_KEY = 'key'
-    CLIENT_METADATA_ASCII_VALUE = 'val'
-    CLIENT_METADATA_BIN_KEY = 'key-bin'
-    CLIENT_METADATA_BIN_VALUE = b'\0'*1000
-    SERVER_INITIAL_METADATA_KEY = 'init_me_me_me'
-    SERVER_INITIAL_METADATA_VALUE = 'whodawha?'
-    SERVER_TRAILING_METADATA_KEY = 'california_is_in_a_drought'
-    SERVER_TRAILING_METADATA_VALUE = 'zomg it is'
-    SERVER_STATUS_CODE = _types.StatusCode.OK
-    SERVER_STATUS_DETAILS = 'our work is never over'
-    REQUEST = 'in death a member of project mayhem has a name'
-    RESPONSE = 'his name is robert paulson'
-    METHOD = 'twinkies'
-    HOST = 'hostess'
+    deadline = time.time() + 5
+    event_time_tolerance = 2
+    deadline_tolerance = 0.25
+    client_metadata_ascii_key = 'key'
+    client_metadata_ascii_value = 'val'
+    client_metadata_bin_key = 'key-bin'
+    client_metadata_bin_value = b'\0'*1000
+    server_initial_metadata_key = 'init_me_me_me'
+    server_initial_metadata_value = 'whodawha?'
+    server_trailing_metadata_key = 'california_is_in_a_drought'
+    server_trailing_metadata_value = 'zomg it is'
+    server_status_code = _types.StatusCode.OK
+    server_status_details = 'our work is never over'
+    request = 'blarghaflargh'
+    response = 'his name is robert paulson'
+    method = 'twinkies'
+    host = 'hostess'
     server_request_tag = object()
-    request_call_result = self.server.request_call(self.server_completion_queue, server_request_tag)
+    request_call_result = self.server.request_call(self.server_completion_queue,
+                                                   server_request_tag)
 
-    self.assertEquals(_types.CallError.OK, request_call_result)
+    self.assertEqual(_types.CallError.OK, request_call_result)
 
     client_call_tag = object()
-    client_call = self.client_channel.create_call(self.client_completion_queue, METHOD, HOST, DEADLINE)
-    client_initial_metadata = [(CLIENT_METADATA_ASCII_KEY, CLIENT_METADATA_ASCII_VALUE), (CLIENT_METADATA_BIN_KEY, CLIENT_METADATA_BIN_VALUE)]
+    client_call = self.client_channel.create_call(
+        self.client_completion_queue, method, host, deadline)
+    client_initial_metadata = [
+        (client_metadata_ascii_key, client_metadata_ascii_value),
+        (client_metadata_bin_key, client_metadata_bin_value)
+    ]
     client_start_batch_result = client_call.start_batch([
         _types.OpArgs.send_initial_metadata(client_initial_metadata),
-        _types.OpArgs.send_message(REQUEST, 0),
+        _types.OpArgs.send_message(request, 0),
         _types.OpArgs.send_close_from_client(),
         _types.OpArgs.recv_initial_metadata(),
         _types.OpArgs.recv_message(),
         _types.OpArgs.recv_status_on_client()
     ], client_call_tag)
-    self.assertEquals(_types.CallError.OK, client_start_batch_result)
+    self.assertEqual(_types.CallError.OK, client_start_batch_result)
 
-    client_no_event, request_event, = wait_for_events([self.client_completion_queue, self.server_completion_queue], time.time() + 2)
-    self.assertEquals(client_no_event, None)
-    self.assertEquals(_types.EventType.OP_COMPLETE, request_event.type)
+    client_no_event, request_event, = wait_for_events(
+        [self.client_completion_queue, self.server_completion_queue],
+        time.time() + event_time_tolerance)
+    self.assertEqual(client_no_event, None)
+    self.assertEqual(_types.EventType.OP_COMPLETE, request_event.type)
     self.assertIsInstance(request_event.call, _low.Call)
     self.assertIs(server_request_tag, request_event.tag)
-    self.assertEquals(1, len(request_event.results))
+    self.assertEqual(1, len(request_event.results))
     received_initial_metadata = dict(request_event.results[0].initial_metadata)
     # Check that our metadata were transmitted
-    self.assertEquals(
+    self.assertEqual(
         dict(client_initial_metadata),
-        dict((x, received_initial_metadata[x]) for x in zip(*client_initial_metadata)[0]))
+        dict((x, received_initial_metadata[x])
+             for x in zip(*client_initial_metadata)[0]))
     # Check that Python's user agent string is a part of the full user agent
     # string
     self.assertIn('Python-gRPC-{}'.format(_grpcio_metadata.__version__),
                   received_initial_metadata['user-agent'])
-    self.assertEquals(METHOD, request_event.call_details.method)
-    self.assertEquals(HOST, request_event.call_details.host)
-    self.assertLess(abs(DEADLINE - request_event.call_details.deadline), DEADLINE_TOLERANCE)
+    self.assertEqual(method, request_event.call_details.method)
+    self.assertEqual(host, request_event.call_details.host)
+    self.assertLess(abs(deadline - request_event.call_details.deadline),
+                    deadline_tolerance)
 
     # Check that the channel is connected, and that both it and the call have
     # the proper target and peer; do this after the first flurry of messages to
@@ -155,33 +166,43 @@ class InsecureServerInsecureClient(unittest.TestCase):
 
     server_call_tag = object()
     server_call = request_event.call
-    server_initial_metadata = [(SERVER_INITIAL_METADATA_KEY, SERVER_INITIAL_METADATA_VALUE)]
-    server_trailing_metadata = [(SERVER_TRAILING_METADATA_KEY, SERVER_TRAILING_METADATA_VALUE)]
+    server_initial_metadata = [
+        (server_initial_metadata_key, server_initial_metadata_value)
+    ]
+    server_trailing_metadata = [
+        (server_trailing_metadata_key, server_trailing_metadata_value)
+    ]
     server_start_batch_result = server_call.start_batch([
         _types.OpArgs.send_initial_metadata(server_initial_metadata),
         _types.OpArgs.recv_message(),
-        _types.OpArgs.send_message(RESPONSE, 0),
+        _types.OpArgs.send_message(response, 0),
         _types.OpArgs.recv_close_on_server(),
-        _types.OpArgs.send_status_from_server(server_trailing_metadata, SERVER_STATUS_CODE, SERVER_STATUS_DETAILS)
+        _types.OpArgs.send_status_from_server(
+            server_trailing_metadata, server_status_code, server_status_details)
     ], server_call_tag)
-    self.assertEquals(_types.CallError.OK, server_start_batch_result)
+    self.assertEqual(_types.CallError.OK, server_start_batch_result)
 
-    client_event, server_event, = wait_for_events([self.client_completion_queue, self.server_completion_queue], time.time() + 1)
+    client_event, server_event, = wait_for_events(
+        [self.client_completion_queue, self.server_completion_queue],
+        time.time() + event_time_tolerance)
 
-    self.assertEquals(6, len(client_event.results))
+    self.assertEqual(6, len(client_event.results))
     found_client_op_types = set()
     for client_result in client_event.results:
-      self.assertNotIn(client_result.type, found_client_op_types)  # we expect each op type to be unique
+      # we expect each op type to be unique
+      self.assertNotIn(client_result.type, found_client_op_types)
       found_client_op_types.add(client_result.type)
       if client_result.type == _types.OpType.RECV_INITIAL_METADATA:
-        self.assertEquals(dict(server_initial_metadata), dict(client_result.initial_metadata))
+        self.assertEqual(dict(server_initial_metadata),
+                         dict(client_result.initial_metadata))
       elif client_result.type == _types.OpType.RECV_MESSAGE:
-        self.assertEquals(RESPONSE, client_result.message)
+        self.assertEqual(response, client_result.message)
       elif client_result.type == _types.OpType.RECV_STATUS_ON_CLIENT:
-        self.assertEquals(dict(server_trailing_metadata), dict(client_result.trailing_metadata))
-        self.assertEquals(SERVER_STATUS_DETAILS, client_result.status.details)
-        self.assertEquals(SERVER_STATUS_CODE, client_result.status.code)
-    self.assertEquals(set([
+        self.assertEqual(dict(server_trailing_metadata),
+                         dict(client_result.trailing_metadata))
+        self.assertEqual(server_status_details, client_result.status.details)
+        self.assertEqual(server_status_code, client_result.status.code)
+    self.assertEqual(set([
           _types.OpType.SEND_INITIAL_METADATA,
           _types.OpType.SEND_MESSAGE,
           _types.OpType.SEND_CLOSE_FROM_CLIENT,
@@ -190,16 +211,16 @@ class InsecureServerInsecureClient(unittest.TestCase):
           _types.OpType.RECV_STATUS_ON_CLIENT
       ]), found_client_op_types)
 
-    self.assertEquals(5, len(server_event.results))
+    self.assertEqual(5, len(server_event.results))
     found_server_op_types = set()
     for server_result in server_event.results:
       self.assertNotIn(client_result.type, found_server_op_types)
       found_server_op_types.add(server_result.type)
       if server_result.type == _types.OpType.RECV_MESSAGE:
-        self.assertEquals(REQUEST, server_result.message)
+        self.assertEqual(request, server_result.message)
       elif server_result.type == _types.OpType.RECV_CLOSE_ON_SERVER:
         self.assertFalse(server_result.cancelled)
-    self.assertEquals(set([
+    self.assertEqual(set([
           _types.OpType.SEND_INITIAL_METADATA,
           _types.OpType.RECV_MESSAGE,
           _types.OpType.SEND_MESSAGE,
@@ -211,5 +232,81 @@ class InsecureServerInsecureClient(unittest.TestCase):
     del server_call
 
 
+class HangingServerShutdown(unittest.TestCase):
+
+  def setUp(self):
+    self.server_completion_queue = _low.CompletionQueue()
+    self.server = _low.Server(self.server_completion_queue, [])
+    self.port = self.server.add_http2_port('[::]:0')
+    self.client_completion_queue = _low.CompletionQueue()
+    self.client_channel = _low.Channel('localhost:%d'%self.port, [])
+
+    self.server.start()
+
+  def tearDown(self):
+    self.server.shutdown()
+    del self.client_channel
+
+    self.client_completion_queue.shutdown()
+    self.server_completion_queue.shutdown()
+    while True:
+      client_event, server_event = wait_for_events(
+          [self.client_completion_queue, self.server_completion_queue],
+          float("+inf"))
+      if (client_event.type == _types.EventType.QUEUE_SHUTDOWN and
+          server_event.type == _types.EventType.QUEUE_SHUTDOWN):
+        break
+
+    del self.client_completion_queue
+    del self.server_completion_queue
+    del self.server
+
+  def testHangingServerCall(self):
+    deadline = time.time() + 5
+    deadline_tolerance = 0.25
+    event_time_tolerance = 2
+    cancel_all_calls_time_tolerance = 0.5
+    request = 'blarghaflargh'
+    method = 'twinkies'
+    host = 'hostess'
+    server_request_tag = object()
+    request_call_result = self.server.request_call(self.server_completion_queue,
+                                                   server_request_tag)
+
+    client_call_tag = object()
+    client_call = self.client_channel.create_call(self.client_completion_queue,
+                                                  method, host, deadline)
+    client_start_batch_result = client_call.start_batch([
+        _types.OpArgs.send_initial_metadata([]),
+        _types.OpArgs.send_message(request, 0),
+        _types.OpArgs.send_close_from_client(),
+        _types.OpArgs.recv_initial_metadata(),
+        _types.OpArgs.recv_message(),
+        _types.OpArgs.recv_status_on_client()
+    ], client_call_tag)
+
+    client_no_event, request_event, = wait_for_events(
+        [self.client_completion_queue, self.server_completion_queue],
+        time.time() + event_time_tolerance)
+
+    # Now try to shutdown the server and expect that we see server shutdown
+    # almost immediately after calling cancel_all_calls.
+    with self.assertRaises(RuntimeError):
+      self.server.cancel_all_calls()
+    shutdown_tag = object()
+    self.server.shutdown(shutdown_tag)
+    pre_cancel_timestamp = time.time()
+    self.server.cancel_all_calls()
+    finish_shutdown_timestamp = None
+    client_call_event, server_shutdown_event = wait_for_events(
+        [self.client_completion_queue, self.server_completion_queue],
+        time.time() + event_time_tolerance)
+    self.assertIs(shutdown_tag, server_shutdown_event.tag)
+    self.assertGreater(pre_cancel_timestamp + cancel_all_calls_time_tolerance,
+                       time.time())
+
+    del client_call
+
+
 if __name__ == '__main__':
   unittest.main(verbosity=2)
diff --git a/src/python/grpcio_test/grpc_test/_core_over_links_base_interface_test.py b/src/python/grpcio_test/grpc_test/_core_over_links_base_interface_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..72b1ae5642694504040aa798fb51e82eedefde1d
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/_core_over_links_base_interface_test.py
@@ -0,0 +1,165 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Tests the RPC Framework Core's implementation of the Base interface."""
+
+import collections
+import logging
+import random
+import time
+import unittest
+
+from grpc._adapter import _intermediary_low
+from grpc._links import invocation
+from grpc._links import service
+from grpc.framework.core import implementations
+from grpc.framework.interfaces.base import utilities
+from grpc_test import test_common as grpc_test_common
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.interfaces.base import test_cases
+from grpc_test.framework.interfaces.base import test_interfaces
+
+_INVOCATION_INITIAL_METADATA = ((b'0', b'abc'), (b'1', b'def'), (b'2', b'ghi'),)
+_SERVICE_INITIAL_METADATA = ((b'3', b'jkl'), (b'4', b'mno'), (b'5', b'pqr'),)
+_SERVICE_TERMINAL_METADATA = ((b'6', b'stu'), (b'7', b'vwx'), (b'8', b'yza'),)
+_CODE = _intermediary_low.Code.OK
+_MESSAGE = b'test message'
+
+
+class _SerializationBehaviors(
+    collections.namedtuple(
+        '_SerializationBehaviors',
+        ('request_serializers', 'request_deserializers', 'response_serializers',
+         'response_deserializers',))):
+  pass
+
+
+class _Links(
+    collections.namedtuple(
+        '_Links',
+        ('invocation_end_link', 'invocation_grpc_link', 'service_grpc_link',
+         'service_end_link'))):
+  pass
+
+
+def _serialization_behaviors_from_serializations(serializations):
+  request_serializers = {}
+  request_deserializers = {}
+  response_serializers = {}
+  response_deserializers = {}
+  for (group, method), serialization in serializations.iteritems():
+    request_serializers[group, method] = serialization.serialize_request
+    request_deserializers[group, method] = serialization.deserialize_request
+    response_serializers[group, method] = serialization.serialize_response
+    response_deserializers[group, method] = serialization.deserialize_response
+  return _SerializationBehaviors(
+      request_serializers, request_deserializers, response_serializers,
+      response_deserializers)
+
+
+class _Implementation(test_interfaces.Implementation):
+
+  def instantiate(self, serializations, servicer):
+    serialization_behaviors = _serialization_behaviors_from_serializations(
+        serializations)
+    invocation_end_link = implementations.invocation_end_link()
+    service_end_link = implementations.service_end_link(
+        servicer, test_constants.DEFAULT_TIMEOUT,
+        test_constants.MAXIMUM_TIMEOUT)
+    service_grpc_link = service.service_link(
+        serialization_behaviors.request_deserializers,
+        serialization_behaviors.response_serializers)
+    port = service_grpc_link.add_port(0, None)
+    channel = _intermediary_low.Channel('localhost:%d' % port, None)
+    invocation_grpc_link = invocation.invocation_link(
+        channel, b'localhost',
+        serialization_behaviors.request_serializers,
+        serialization_behaviors.response_deserializers)
+
+    invocation_end_link.join_link(invocation_grpc_link)
+    invocation_grpc_link.join_link(invocation_end_link)
+    service_end_link.join_link(service_grpc_link)
+    service_grpc_link.join_link(service_end_link)
+    invocation_grpc_link.start()
+    service_grpc_link.start()
+    return invocation_end_link, service_end_link, (
+        invocation_grpc_link, service_grpc_link)
+
+  def destantiate(self, memo):
+    invocation_grpc_link, service_grpc_link = memo
+    invocation_grpc_link.stop()
+    service_grpc_link.stop_gracefully()
+
+  def invocation_initial_metadata(self):
+    return _INVOCATION_INITIAL_METADATA
+
+  def service_initial_metadata(self):
+    return _SERVICE_INITIAL_METADATA
+
+  def invocation_completion(self):
+    return utilities.completion(None, None, None)
+
+  def service_completion(self):
+    return utilities.completion(_SERVICE_TERMINAL_METADATA, _CODE, _MESSAGE)
+
+  def metadata_transmitted(self, original_metadata, transmitted_metadata):
+    return original_metadata is None or grpc_test_common.metadata_transmitted(
+        original_metadata, transmitted_metadata)
+
+  def completion_transmitted(self, original_completion, transmitted_completion):
+    if (original_completion.terminal_metadata is not None and
+        not grpc_test_common.metadata_transmitted(
+            original_completion.terminal_metadata,
+            transmitted_completion.terminal_metadata)):
+        return False
+    elif original_completion.code is not transmitted_completion.code:
+      return False
+    elif original_completion.message != transmitted_completion.message:
+      return False
+    else:
+      return True
+
+
+def setUpModule():
+  logging.warn('setUpModule!')
+
+
+def tearDownModule():
+  logging.warn('tearDownModule!')
+
+
+def load_tests(loader, tests, pattern):
+  return unittest.TestSuite(
+      tests=tuple(
+          loader.loadTestsFromTestCase(test_case_class)
+          for test_case_class in test_cases.test_cases(_Implementation())))
+
+
+if __name__ == '__main__':
+  unittest.main(verbosity=2)
diff --git a/src/python/grpcio_test/grpc_test/_cython/adapter_low_test.py b/src/python/grpcio_test/grpc_test/_cython/adapter_low_test.py
index 9bab930e56e1c6e9772c1f7c3a915869d12f4a76..f1bec238cf5503eb8411a43dcf91b765a07ab7c0 100644
--- a/src/python/grpcio_test/grpc_test/_cython/adapter_low_test.py
+++ b/src/python/grpcio_test/grpc_test/_cython/adapter_low_test.py
@@ -76,7 +76,7 @@ class InsecureServerInsecureClient(unittest.TestCase):
     CLIENT_METADATA_BIN_VALUE = b'\0'*1000
     SERVER_INITIAL_METADATA_KEY = 'init_me_me_me'
     SERVER_INITIAL_METADATA_VALUE = 'whodawha?'
-    SERVER_TRAILING_METADATA_KEY = 'California_is_in_a_drought'
+    SERVER_TRAILING_METADATA_KEY = 'california_is_in_a_drought'
     SERVER_TRAILING_METADATA_VALUE = 'zomg it is'
     SERVER_STATUS_CODE = _types.StatusCode.OK
     SERVER_STATUS_DETAILS = 'our work is never over'
diff --git a/src/python/grpcio_test/grpc_test/_links/_lonely_invocation_link_test.py b/src/python/grpcio_test/grpc_test/_links/_lonely_invocation_link_test.py
index abe240e07aba62c94aa3e9f27c78728b3c66721c..373a2b2a1f7c47399ccd3d1b4b88b798333ad883 100644
--- a/src/python/grpcio_test/grpc_test/_links/_lonely_invocation_link_test.py
+++ b/src/python/grpcio_test/grpc_test/_links/_lonely_invocation_link_test.py
@@ -66,7 +66,7 @@ class LonelyInvocationLinkTest(unittest.TestCase):
     ticket = links.Ticket(
         test_operation_id, 0, test_group, test_method,
         links.Ticket.Subscription.FULL, test_constants.SHORT_TIMEOUT, 1, None,
-        None, None, None, None, termination)
+        None, None, None, None, termination, None)
     invocation_link.accept_ticket(ticket)
     invocation_link_mate.block_until_tickets_satisfy(test_cases.terminated)
 
diff --git a/src/python/grpcio_test/grpc_test/_links/_transmission_test.py b/src/python/grpcio_test/grpc_test/_links/_transmission_test.py
index 9cdc9620f0ad5e0d8f32798d9523384f06f3e7df..db011bca66d77a08dc33ef4acb5d9d473352c080 100644
--- a/src/python/grpcio_test/grpc_test/_links/_transmission_test.py
+++ b/src/python/grpcio_test/grpc_test/_links/_transmission_test.py
@@ -66,9 +66,9 @@ class TransmissionTest(test_cases.TransmissionTest, unittest.TestCase):
 
   def create_invocation_initial_metadata(self):
     return (
-        ('first invocation initial metadata key', 'just a string value'),
-        ('second invocation initial metadata key', '0123456789'),
-        ('third invocation initial metadata key-bin', '\x00\x57' * 100),
+        ('first_invocation_initial_metadata_key', 'just a string value'),
+        ('second_invocation_initial_metadata_key', '0123456789'),
+        ('third_invocation_initial_metadata_key-bin', '\x00\x57' * 100),
     )
 
   def create_invocation_terminal_metadata(self):
@@ -76,16 +76,16 @@ class TransmissionTest(test_cases.TransmissionTest, unittest.TestCase):
 
   def create_service_initial_metadata(self):
     return (
-        ('first service initial metadata key', 'just another string value'),
-        ('second service initial metadata key', '9876543210'),
-        ('third service initial metadata key-bin', '\x00\x59\x02' * 100),
+        ('first_service_initial_metadata_key', 'just another string value'),
+        ('second_service_initial_metadata_key', '9876543210'),
+        ('third_service_initial_metadata_key-bin', '\x00\x59\x02' * 100),
     )
 
   def create_service_terminal_metadata(self):
     return (
-        ('first service terminal metadata key', 'yet another string value'),
-        ('second service terminal metadata key', 'abcdefghij'),
-        ('third service terminal metadata key-bin', '\x00\x37' * 100),
+        ('first_service_terminal_metadata_key', 'yet another string value'),
+        ('second_service_terminal_metadata_key', 'abcdefghij'),
+        ('third_service_terminal_metadata_key-bin', '\x00\x37' * 100),
     )
 
   def create_invocation_completion(self):
@@ -128,14 +128,14 @@ class RoundTripTest(unittest.TestCase):
     invocation_ticket = links.Ticket(
         test_operation_id, 0, test_group, test_method,
         links.Ticket.Subscription.FULL, test_constants.LONG_TIMEOUT, None, None,
-        None, None, None, None, links.Ticket.Termination.COMPLETION)
+        None, None, None, None, links.Ticket.Termination.COMPLETION, None)
     invocation_link.accept_ticket(invocation_ticket)
     service_mate.block_until_tickets_satisfy(test_cases.terminated)
 
     service_ticket = links.Ticket(
         service_mate.tickets()[-1].operation_id, 0, None, None, None, None,
         None, None, None, None, test_code, test_message,
-        links.Ticket.Termination.COMPLETION)
+        links.Ticket.Termination.COMPLETION, None)
     service_link.accept_ticket(service_ticket)
     invocation_mate.block_until_tickets_satisfy(test_cases.terminated)
 
@@ -174,33 +174,34 @@ class RoundTripTest(unittest.TestCase):
     invocation_ticket = links.Ticket(
         test_operation_id, 0, test_group, test_method,
         links.Ticket.Subscription.FULL, test_constants.LONG_TIMEOUT, None, None,
-        None, None, None, None, None)
+        None, None, None, None, None, None)
     invocation_link.accept_ticket(invocation_ticket)
     requests = scenario.requests()
     for request_index, request in enumerate(requests):
       request_ticket = links.Ticket(
           test_operation_id, 1 + request_index, None, None, None, None, 1, None,
-          request, None, None, None, None)
+          request, None, None, None, None, None)
       invocation_link.accept_ticket(request_ticket)
       service_mate.block_until_tickets_satisfy(
           test_cases.at_least_n_payloads_received_predicate(1 + request_index))
       response_ticket = links.Ticket(
           service_mate.tickets()[0].operation_id, request_index, None, None,
           None, None, 1, None, scenario.response_for_request(request), None,
-          None, None, None)
+          None, None, None, None)
       service_link.accept_ticket(response_ticket)
       invocation_mate.block_until_tickets_satisfy(
           test_cases.at_least_n_payloads_received_predicate(1 + request_index))
     request_count = len(requests)
     invocation_completion_ticket = links.Ticket(
         test_operation_id, request_count + 1, None, None, None, None, None,
-        None, None, None, None, None, links.Ticket.Termination.COMPLETION)
+        None, None, None, None, None, links.Ticket.Termination.COMPLETION,
+        None)
     invocation_link.accept_ticket(invocation_completion_ticket)
     service_mate.block_until_tickets_satisfy(test_cases.terminated)
     service_completion_ticket = links.Ticket(
         service_mate.tickets()[0].operation_id, request_count, None, None, None,
         None, None, None, None, None, test_code, test_message,
-        links.Ticket.Termination.COMPLETION)
+        links.Ticket.Termination.COMPLETION, None)
     service_link.accept_ticket(service_completion_ticket)
     invocation_mate.block_until_tickets_satisfy(test_cases.terminated)
 
diff --git a/src/python/grpcio_test/grpc_test/framework/common/test_constants.py b/src/python/grpcio_test/grpc_test/framework/common/test_constants.py
index 3126d0d82ce898efd78fdb7df55b42b60527020d..e1d3c2709d00eb127907ee736d1402fcc1f4bc56 100644
--- a/src/python/grpcio_test/grpc_test/framework/common/test_constants.py
+++ b/src/python/grpcio_test/grpc_test/framework/common/test_constants.py
@@ -29,15 +29,25 @@
 
 """Constants shared among tests throughout RPC Framework."""
 
+# Value for maximum duration in seconds that a test is allowed for its actual
+# behavioral logic, excluding all time spent deliberately waiting in the test.
+TIME_ALLOWANCE = 10
 # Value for maximum duration in seconds of RPCs that may time out as part of a
 # test.
 SHORT_TIMEOUT = 4
 # Absurdly large value for maximum duration in seconds for should-not-time-out
 # RPCs made during tests.
 LONG_TIMEOUT = 3000
+# Values to supply on construction of an object that will service RPCs; these
+# should not be used as the actual timeout values of any RPCs made during tests.
+DEFAULT_TIMEOUT = 300
+MAXIMUM_TIMEOUT = 3600
 
 # The number of payloads to transmit in streaming tests.
 STREAM_LENGTH = 200
 
+# The size of payloads to transmit in tests.
+PAYLOAD_SIZE = 256 * 1024 + 17
+
 # The size of thread pools to use in tests.
 POOL_SIZE = 10
diff --git a/src/python/grpcio_test/grpc_test/framework/common/test_control.py b/src/python/grpcio_test/grpc_test/framework/common/test_control.py
index 3960c4e649590db318223ac44a147c7bf3ffd919..8d6eba5c2caabce420300af00b97a709facf0a05 100644
--- a/src/python/grpcio_test/grpc_test/framework/common/test_control.py
+++ b/src/python/grpcio_test/grpc_test/framework/common/test_control.py
@@ -34,6 +34,14 @@ import contextlib
 import threading
 
 
+class Defect(Exception):
+  """Simulates a programming defect raised into in a system under test.
+
+  Use of a standard exception type is too easily misconstrued as an actual
+  defect in either the test infrastructure or the system under test.
+  """
+
+
 class Control(object):
   """An object that accepts program control from a system under test.
 
@@ -62,7 +70,7 @@ class PauseFailControl(Control):
   def control(self):
     with self._condition:
       if self._fail:
-        raise ValueError()
+        raise Defect()
 
       while self._paused:
         self._condition.wait()
diff --git a/src/python/grpcio_test/grpc_test/framework/core/__init__.py b/src/python/grpcio_test/grpc_test/framework/core/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..708651910607ffb686d781713f6893567821b9fd
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/core/__init__.py
@@ -0,0 +1,30 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/src/python/grpcio_test/grpc_test/framework/core/_base_interface_test.py b/src/python/grpcio_test/grpc_test/framework/core/_base_interface_test.py
new file mode 100644
index 0000000000000000000000000000000000000000..8d72f131d578c011d5b7b7418baf9d2963d04c39
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/core/_base_interface_test.py
@@ -0,0 +1,96 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Tests the RPC Framework Core's implementation of the Base interface."""
+
+import logging
+import random
+import time
+import unittest
+
+from grpc.framework.core import implementations
+from grpc.framework.interfaces.base import utilities
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.interfaces.base import test_cases
+from grpc_test.framework.interfaces.base import test_interfaces
+
+
+class _Implementation(test_interfaces.Implementation):
+
+  def __init__(self):
+    self._invocation_initial_metadata = object()
+    self._service_initial_metadata = object()
+    self._invocation_terminal_metadata = object()
+    self._service_terminal_metadata = object()
+
+  def instantiate(self, serializations, servicer):
+    invocation = implementations.invocation_end_link()
+    service = implementations.service_end_link(
+        servicer, test_constants.DEFAULT_TIMEOUT,
+        test_constants.MAXIMUM_TIMEOUT)
+    invocation.join_link(service)
+    service.join_link(invocation)
+    return invocation, service, None
+
+  def destantiate(self, memo):
+    pass
+
+  def invocation_initial_metadata(self):
+    return self._invocation_initial_metadata
+
+  def service_initial_metadata(self):
+    return self._service_initial_metadata
+
+  def invocation_completion(self):
+    return utilities.completion(self._invocation_terminal_metadata, None, None)
+
+  def service_completion(self):
+    return utilities.completion(self._service_terminal_metadata, None, None)
+
+  def metadata_transmitted(self, original_metadata, transmitted_metadata):
+    return transmitted_metadata is original_metadata
+
+  def completion_transmitted(self, original_completion, transmitted_completion):
+    return (
+        (original_completion.terminal_metadata is
+         transmitted_completion.terminal_metadata) and
+        original_completion.code is transmitted_completion.code and
+        original_completion.message is transmitted_completion.message
+    )
+
+
+def load_tests(loader, tests, pattern):
+  return unittest.TestSuite(
+      tests=tuple(
+          loader.loadTestsFromTestCase(test_case_class)
+          for test_case_class in test_cases.test_cases(_Implementation())))
+
+
+if __name__ == '__main__':
+  unittest.main(verbosity=2)
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/base/__init__.py b/src/python/grpcio_test/grpc_test/framework/interfaces/base/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..708651910607ffb686d781713f6893567821b9fd
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/base/__init__.py
@@ -0,0 +1,30 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/base/_control.py b/src/python/grpcio_test/grpc_test/framework/interfaces/base/_control.py
new file mode 100644
index 0000000000000000000000000000000000000000..e4d2a7a0d799149305a95f6f695ed5c7e75f3515
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/base/_control.py
@@ -0,0 +1,568 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Part of the tests of the base interface of RPC Framework."""
+
+import abc
+import collections
+import enum
+import random  # pylint: disable=unused-import
+import threading
+import time
+
+from grpc.framework.interfaces.base import base
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.interfaces.base import _sequence
+from grpc_test.framework.interfaces.base import _state
+from grpc_test.framework.interfaces.base import test_interfaces  # pylint: disable=unused-import
+
+_GROUP = 'base test cases test group'
+_METHOD = 'base test cases test method'
+
+_PAYLOAD_RANDOM_SECTION_MAXIMUM_SIZE = test_constants.PAYLOAD_SIZE / 20
+_MINIMUM_PAYLOAD_SIZE = test_constants.PAYLOAD_SIZE / 600
+
+
+def _create_payload(randomness):
+  length = randomness.randint(
+      _MINIMUM_PAYLOAD_SIZE, test_constants.PAYLOAD_SIZE)
+  random_section_length = randomness.randint(
+      0, min(_PAYLOAD_RANDOM_SECTION_MAXIMUM_SIZE, length))
+  random_section = bytes(
+      bytearray(
+          randomness.getrandbits(8) for _ in range(random_section_length)))
+  sevens_section = '\x07' * (length - random_section_length)
+  return b''.join(randomness.sample((random_section, sevens_section), 2))
+
+
+def _anything_in_flight(state):
+  return (
+      state.invocation_initial_metadata_in_flight is not None or
+      state.invocation_payloads_in_flight or
+      state.invocation_completion_in_flight is not None or
+      state.service_initial_metadata_in_flight is not None or
+      state.service_payloads_in_flight or
+      state.service_completion_in_flight is not None or
+      0 < state.invocation_allowance_in_flight or
+      0 < state.service_allowance_in_flight
+  )
+
+
+def _verify_service_advance_and_update_state(
+    initial_metadata, payload, completion, allowance, state, implementation):
+  if initial_metadata is not None:
+    if state.invocation_initial_metadata_received:
+      return 'Later invocation initial metadata received: %s' % (
+          initial_metadata,)
+    if state.invocation_payloads_received:
+      return 'Invocation initial metadata received after payloads: %s' % (
+          state.invocation_payloads_received)
+    if state.invocation_completion_received:
+      return 'Invocation initial metadata received after invocation completion!'
+    if not implementation.metadata_transmitted(
+        state.invocation_initial_metadata_in_flight, initial_metadata):
+      return 'Invocation initial metadata maltransmitted: %s, %s' % (
+          state.invocation_initial_metadata_in_flight, initial_metadata)
+    else:
+      state.invocation_initial_metadata_in_flight = None
+      state.invocation_initial_metadata_received = True
+
+  if payload is not None:
+    if state.invocation_completion_received:
+      return 'Invocation payload received after invocation completion!'
+    elif not state.invocation_payloads_in_flight:
+      return 'Invocation payload "%s" received but not in flight!' % (payload,)
+    elif state.invocation_payloads_in_flight[0] != payload:
+      return 'Invocation payload mismatch: %s, %s' % (
+          state.invocation_payloads_in_flight[0], payload)
+    elif state.service_side_invocation_allowance < 1:
+      return 'Disallowed invocation payload!'
+    else:
+      state.invocation_payloads_in_flight.pop(0)
+      state.invocation_payloads_received += 1
+      state.service_side_invocation_allowance -= 1
+
+  if completion is not None:
+    if state.invocation_completion_received:
+      return 'Later invocation completion received: %s' % (completion,)
+    elif not implementation.completion_transmitted(
+        state.invocation_completion_in_flight, completion):
+      return 'Invocation completion maltransmitted: %s, %s' % (
+          state.invocation_completion_in_flight, completion)
+    else:
+      state.invocation_completion_in_flight = None
+      state.invocation_completion_received = True
+
+  if allowance is not None:
+    if allowance <= 0:
+      return 'Illegal allowance value: %s' % (allowance,)
+    else:
+      state.service_allowance_in_flight -= allowance
+      state.service_side_service_allowance += allowance
+
+
+def _verify_invocation_advance_and_update_state(
+    initial_metadata, payload, completion, allowance, state, implementation):
+  if initial_metadata is not None:
+    if state.service_initial_metadata_received:
+      return 'Later service initial metadata received: %s' % (initial_metadata,)
+    if state.service_payloads_received:
+      return 'Service initial metadata received after service payloads: %s' % (
+          state.service_payloads_received)
+    if state.service_completion_received:
+      return 'Service initial metadata received after service completion!'
+    if not implementation.metadata_transmitted(
+        state.service_initial_metadata_in_flight, initial_metadata):
+      return 'Service initial metadata maltransmitted: %s, %s' % (
+          state.service_initial_metadata_in_flight, initial_metadata)
+    else:
+      state.service_initial_metadata_in_flight = None
+      state.service_initial_metadata_received = True
+
+  if payload is not None:
+    if state.service_completion_received:
+      return 'Service payload received after service completion!'
+    elif not state.service_payloads_in_flight:
+      return 'Service payload "%s" received but not in flight!' % (payload,)
+    elif state.service_payloads_in_flight[0] != payload:
+      return 'Service payload mismatch: %s, %s' % (
+          state.invocation_payloads_in_flight[0], payload)
+    elif state.invocation_side_service_allowance < 1:
+      return 'Disallowed service payload!'
+    else:
+      state.service_payloads_in_flight.pop(0)
+      state.service_payloads_received += 1
+      state.invocation_side_service_allowance -= 1
+
+  if completion is not None:
+    if state.service_completion_received:
+      return 'Later service completion received: %s' % (completion,)
+    elif not implementation.completion_transmitted(
+        state.service_completion_in_flight, completion):
+      return 'Service completion maltransmitted: %s, %s' % (
+          state.service_completion_in_flight, completion)
+    else:
+      state.service_completion_in_flight = None
+      state.service_completion_received = True
+
+  if allowance is not None:
+    if allowance <= 0:
+      return 'Illegal allowance value: %s' % (allowance,)
+    else:
+      state.invocation_allowance_in_flight -= allowance
+      state.invocation_side_service_allowance += allowance
+
+
+class Invocation(
+    collections.namedtuple(
+        'Invocation',
+        ('group', 'method', 'subscription_kind', 'timeout', 'initial_metadata',
+         'payload', 'completion',))):
+  """A description of operation invocation.
+
+  Attributes:
+    group: The group identifier for the operation.
+    method: The method identifier for the operation.
+    subscription_kind: A base.Subscription.Kind value describing the kind of
+      subscription to use for the operation.
+    timeout: A duration in seconds to pass as the timeout value for the
+      operation.
+    initial_metadata: An object to pass as the initial metadata for the
+      operation or None.
+    payload: An object to pass as a payload value for the operation or None.
+    completion: An object to pass as a completion value for the operation or
+      None.
+  """
+
+
+class OnAdvance(
+    collections.namedtuple(
+        'OnAdvance',
+        ('kind', 'initial_metadata', 'payload', 'completion', 'allowance'))):
+  """Describes action to be taken in a test in response to an advance call.
+
+  Attributes:
+    kind: A Kind value describing the overall kind of response.
+    initial_metadata: An initial metadata value to pass to a call of the advance
+      method of the operator under test. Only valid if kind is Kind.ADVANCE and
+      may be None.
+    payload: A payload value to pass to a call of the advance method of the
+      operator under test. Only valid if kind is Kind.ADVANCE and may be None.
+    completion: A base.Completion value to pass to a call of the advance method
+      of the operator under test. Only valid if kind is Kind.ADVANCE and may be
+      None.
+    allowance: An allowance value to pass to a call of the advance method of the
+      operator under test. Only valid if kind is Kind.ADVANCE and may be None.
+  """
+
+  @enum.unique
+  class Kind(enum.Enum):
+    ADVANCE = 'advance'
+    DEFECT = 'defect'
+    IDLE = 'idle'
+
+
+_DEFECT_ON_ADVANCE = OnAdvance(OnAdvance.Kind.DEFECT, None, None, None, None)
+_IDLE_ON_ADVANCE = OnAdvance(OnAdvance.Kind.IDLE, None, None, None, None)
+
+
+class Instruction(
+    collections.namedtuple(
+        'Instruction',
+        ('kind', 'advance_args', 'advance_kwargs', 'conclude_success',
+         'conclude_message', 'conclude_invocation_outcome',
+         'conclude_service_outcome',))):
+  """"""
+
+  @enum.unique
+  class Kind(enum.Enum):
+    ADVANCE = 'ADVANCE'
+    CANCEL = 'CANCEL'
+    CONCLUDE = 'CONCLUDE'
+
+
+class Controller(object):
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def failed(self, message):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def serialize_request(self, request):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def deserialize_request(self, serialized_request):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def serialize_response(self, response):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def deserialize_response(self, serialized_response):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def invocation(self):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def poll(self):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def on_service_advance(
+      self, initial_metadata, payload, completion, allowance):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def on_invocation_advance(
+      self, initial_metadata, payload, completion, allowance):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def service_on_termination(self, outcome):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def invocation_on_termination(self, outcome):
+    """"""
+    raise NotImplementedError()
+
+
+class ControllerCreator(object):
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def name(self):
+    """"""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def controller(self, implementation, randomness):
+    """"""
+    raise NotImplementedError()
+
+
+class _Remainder(
+    collections.namedtuple(
+        '_Remainder',
+        ('invocation_payloads', 'service_payloads', 'invocation_completion',
+         'service_completion',))):
+  """Describes work remaining to be done in a portion of a test.
+
+  Attributes:
+    invocation_payloads: The number of payloads to be sent from the invocation
+      side of the operation to the service side of the operation.
+    service_payloads: The number of payloads to be sent from the service side of
+      the operation to the invocation side of the operation.
+    invocation_completion: Whether or not completion from the invocation side of
+      the operation should be indicated and has yet to be indicated.
+    service_completion: Whether or not completion from the service side of the
+      operation should be indicated and has yet to be indicated.
+  """
+
+
+class _SequenceController(Controller):
+
+  def __init__(self, sequence, implementation, randomness):
+    """Constructor.
+
+    Args:
+      sequence: A _sequence.Sequence describing the steps to be taken in the
+        test at a relatively high level.
+      implementation: A test_interfaces.Implementation encapsulating the
+        base interface implementation that is the system under test.
+      randomness: A random.Random instance for use in the test.
+    """
+    self._condition = threading.Condition()
+    self._sequence = sequence
+    self._implementation = implementation
+    self._randomness = randomness
+
+    self._until = None
+    self._remaining_elements = None
+    self._poll_next = None
+    self._message = None
+
+    self._state = _state.OperationState()
+    self._todo = None
+
+  # called with self._condition
+  def _failed(self, message):
+    self._message = message
+    self._condition.notify_all()
+
+  def _passed(self, invocation_outcome, service_outcome):
+    self._poll_next = Instruction(
+        Instruction.Kind.CONCLUDE, None, None, True, None, invocation_outcome,
+        service_outcome)
+    self._condition.notify_all()
+
+  def failed(self, message):
+    with self._condition:
+      self._failed(message)
+
+  def serialize_request(self, request):
+    return request + request
+
+  def deserialize_request(self, serialized_request):
+    return serialized_request[:len(serialized_request) / 2]
+
+  def serialize_response(self, response):
+    return response * 3
+
+  def deserialize_response(self, serialized_response):
+    return serialized_response[2 * len(serialized_response) / 3:]
+
+  def invocation(self):
+    with self._condition:
+      self._until = time.time() + self._sequence.maximum_duration
+      self._remaining_elements = list(self._sequence.elements)
+      if self._sequence.invocation.initial_metadata:
+        initial_metadata = self._implementation.invocation_initial_metadata()
+        self._state.invocation_initial_metadata_in_flight = initial_metadata
+      else:
+        initial_metadata = None
+      if self._sequence.invocation.payload:
+        payload = _create_payload(self._randomness)
+        self._state.invocation_payloads_in_flight.append(payload)
+      else:
+        payload = None
+      if self._sequence.invocation.complete:
+        completion = self._implementation.invocation_completion()
+        self._state.invocation_completion_in_flight = completion
+      else:
+        completion = None
+      return Invocation(
+          _GROUP, _METHOD, base.Subscription.Kind.FULL,
+          self._sequence.invocation.timeout, initial_metadata, payload,
+          completion)
+
+  def poll(self):
+    with self._condition:
+      while True:
+        if self._message is not None:
+          return Instruction(
+              Instruction.Kind.CONCLUDE, None, None, False, self._message, None,
+              None)
+        elif self._poll_next:
+          poll_next = self._poll_next
+          self._poll_next = None
+          return poll_next
+        elif self._until < time.time():
+          return Instruction(
+              Instruction.Kind.CONCLUDE, None, None, False,
+              'overran allotted time!', None, None)
+        else:
+          self._condition.wait(timeout=self._until-time.time())
+
+  def on_service_advance(
+      self, initial_metadata, payload, completion, allowance):
+    with self._condition:
+      message = _verify_service_advance_and_update_state(
+          initial_metadata, payload, completion, allowance, self._state,
+          self._implementation)
+      if message is not None:
+        self._failed(message)
+      if self._todo is not None:
+        raise ValueError('TODO!!!')
+      elif _anything_in_flight(self._state):
+        return _IDLE_ON_ADVANCE
+      elif self._remaining_elements:
+        element = self._remaining_elements.pop(0)
+        if element.kind is _sequence.Element.Kind.SERVICE_TRANSMISSION:
+          if element.transmission.initial_metadata:
+            initial_metadata = self._implementation.service_initial_metadata()
+            self._state.service_initial_metadata_in_flight = initial_metadata
+          else:
+            initial_metadata = None
+          if element.transmission.payload:
+            payload = _create_payload(self._randomness)
+            self._state.service_payloads_in_flight.append(payload)
+            self._state.service_side_service_allowance -= 1
+          else:
+            payload = None
+          if element.transmission.complete:
+            completion = self._implementation.service_completion()
+            self._state.service_completion_in_flight = completion
+          else:
+            completion = None
+          if (not self._state.invocation_completion_received and
+              0 <= self._state.service_side_invocation_allowance):
+            allowance = 1
+            self._state.service_side_invocation_allowance += 1
+            self._state.invocation_allowance_in_flight += 1
+          else:
+            allowance = None
+          return OnAdvance(
+              OnAdvance.Kind.ADVANCE, initial_metadata, payload, completion,
+              allowance)
+        else:
+          raise ValueError('TODO!!!')
+      else:
+        return _IDLE_ON_ADVANCE
+
+  def on_invocation_advance(
+      self, initial_metadata, payload, completion, allowance):
+    with self._condition:
+      message = _verify_invocation_advance_and_update_state(
+          initial_metadata, payload, completion, allowance, self._state,
+          self._implementation)
+      if message is not None:
+        self._failed(message)
+      if self._todo is not None:
+        raise ValueError('TODO!!!')
+      elif _anything_in_flight(self._state):
+        return _IDLE_ON_ADVANCE
+      elif self._remaining_elements:
+        element = self._remaining_elements.pop(0)
+        if element.kind is _sequence.Element.Kind.INVOCATION_TRANSMISSION:
+          if element.transmission.initial_metadata:
+            initial_metadata = self._implementation.invocation_initial_metadata()
+            self._state.invocation_initial_metadata_in_fight = initial_metadata
+          else:
+            initial_metadata = None
+          if element.transmission.payload:
+            payload = _create_payload(self._randomness)
+            self._state.invocation_payloads_in_flight.append(payload)
+            self._state.invocation_side_invocation_allowance -= 1
+          else:
+            payload = None
+          if element.transmission.complete:
+            completion = self._implementation.invocation_completion()
+            self._state.invocation_completion_in_flight = completion
+          else:
+            completion = None
+          if (not self._state.service_completion_received and
+              0 <= self._state.invocation_side_service_allowance):
+            allowance = 1
+            self._state.invocation_side_service_allowance += 1
+            self._state.service_allowance_in_flight += 1
+          else:
+            allowance = None
+          return OnAdvance(
+              OnAdvance.Kind.ADVANCE, initial_metadata, payload, completion,
+              allowance)
+        else:
+          raise ValueError('TODO!!!')
+      else:
+        return _IDLE_ON_ADVANCE
+
+  def service_on_termination(self, outcome):
+    with self._condition:
+      self._state.service_side_outcome = outcome
+      if self._todo is not None or self._remaining_elements:
+        self._failed('Premature service-side outcome %s!' % (outcome,))
+      elif outcome is not self._sequence.outcome.service:
+        self._failed(
+            'Incorrect service-side outcome: %s should have been %s' % (
+                outcome, self._sequence.outcome.service))
+      elif self._state.invocation_side_outcome is not None:
+        self._passed(self._state.invocation_side_outcome, outcome)
+
+  def invocation_on_termination(self, outcome):
+    with self._condition:
+      self._state.invocation_side_outcome = outcome
+      if self._todo is not None or self._remaining_elements:
+        self._failed('Premature invocation-side outcome %s!' % (outcome,))
+      elif outcome is not self._sequence.outcome.invocation:
+        self._failed(
+            'Incorrect invocation-side outcome: %s should have been %s' % (
+                outcome, self._sequence.outcome.invocation))
+      elif self._state.service_side_outcome is not None:
+        self._passed(outcome, self._state.service_side_outcome)
+
+
+class _SequenceControllerCreator(ControllerCreator):
+
+  def __init__(self, sequence):
+    self._sequence = sequence
+
+  def name(self):
+    return self._sequence.name
+
+  def controller(self, implementation, randomness):
+    return _SequenceController(self._sequence, implementation, randomness)
+
+
+CONTROLLER_CREATORS = tuple(
+    _SequenceControllerCreator(sequence) for sequence in _sequence.SEQUENCES)
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/base/_sequence.py b/src/python/grpcio_test/grpc_test/framework/interfaces/base/_sequence.py
new file mode 100644
index 0000000000000000000000000000000000000000..1d77aaebe6b391d48a97b69b35d34741ddfeb939
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/base/_sequence.py
@@ -0,0 +1,168 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Part of the tests of the base interface of RPC Framework."""
+
+import collections
+import enum
+
+from grpc.framework.interfaces.base import base
+from grpc_test.framework.common import test_constants
+
+
+class Invocation(
+    collections.namedtuple(
+        'Invocation', ('timeout', 'initial_metadata', 'payload', 'complete',))):
+  """A recipe for operation invocation.
+
+  Attributes:
+    timeout: A duration in seconds to pass to the system under test as the
+      operation's timeout value.
+    initial_metadata: A boolean indicating whether or not to pass initial
+      metadata when invoking the operation.
+    payload: A boolean indicating whether or not to pass a payload when
+      invoking the operation.
+    complete: A boolean indicating whether or not to indicate completion of
+      transmissions from the invoking side of the operation when invoking the
+      operation.
+  """
+
+
+class Transmission(
+    collections.namedtuple(
+        'Transmission', ('initial_metadata', 'payload', 'complete',))):
+  """A recipe for a single transmission in an operation.
+
+  Attributes:
+    initial_metadata: A boolean indicating whether or not to pass initial
+      metadata as part of the transmission.
+    payload: A boolean indicating whether or not to pass a payload as part of
+      the transmission.
+    complete: A boolean indicating whether or not to indicate completion of
+      transmission from the transmitting side of the operation as part of the
+      transmission.
+  """
+
+
+class Intertransmission(
+    collections.namedtuple('Intertransmission', ('invocation', 'service',))):
+  """A recipe for multiple transmissions in an operation.
+
+  Attributes:
+    invocation: An integer describing the number of payloads to send from the
+      invocation side of the operation to the service side.
+    service: An integer describing the number of payloads to send from the
+      service side of the operation to the invocation side.
+  """
+
+
+class Element(collections.namedtuple('Element', ('kind', 'transmission',))):
+  """A sum type for steps to perform when testing an operation.
+
+  Attributes:
+    kind: A Kind value describing the kind of step to perform in the test.
+    transmission: Only valid for kinds Kind.INVOCATION_TRANSMISSION and
+      Kind.SERVICE_TRANSMISSION, a Transmission value describing the details of
+      the transmission to be made.
+  """
+
+  @enum.unique
+  class Kind(enum.Enum):
+    INVOCATION_TRANSMISSION = 'invocation transmission'
+    SERVICE_TRANSMISSION = 'service transmission'
+    INTERTRANSMISSION = 'intertransmission'
+    INVOCATION_CANCEL = 'invocation cancel'
+    SERVICE_CANCEL = 'service cancel'
+    INVOCATION_FAILURE = 'invocation failure'
+    SERVICE_FAILURE = 'service failure'
+
+
+class Outcome(collections.namedtuple('Outcome', ('invocation', 'service',))):
+  """A description of the expected outcome of an operation test.
+
+  Attributes:
+    invocation: The base.Outcome value expected on the invocation side of the
+      operation.
+    service: The base.Outcome value expected on the service side of the
+      operation.
+  """
+
+
+class Sequence(
+    collections.namedtuple(
+        'Sequence',
+        ('name', 'maximum_duration', 'invocation', 'elements', 'outcome',))):
+  """Describes at a high level steps to perform in a test.
+
+  Attributes:
+    name: The string name of the sequence.
+    maximum_duration: A length of time in seconds to allow for the test before
+      declaring it to have failed.
+    invocation: An Invocation value describing how to invoke the operation
+      under test.
+    elements: A sequence of Element values describing at coarse granularity
+      actions to take during the operation under test.
+    outcome: An Outcome value describing the expected outcome of the test.
+  """
+
+_EASY = Sequence(
+    'Easy',
+    test_constants.TIME_ALLOWANCE,
+    Invocation(test_constants.LONG_TIMEOUT, True, True, True),
+    (
+        Element(
+            Element.Kind.SERVICE_TRANSMISSION, Transmission(True, True, True)),
+    ),
+    Outcome(base.Outcome.COMPLETED, base.Outcome.COMPLETED))
+
+_PEASY = Sequence(
+    'Peasy',
+    test_constants.TIME_ALLOWANCE,
+    Invocation(test_constants.LONG_TIMEOUT, True, True, False),
+    (
+        Element(
+            Element.Kind.SERVICE_TRANSMISSION, Transmission(True, True, False)),
+        Element(
+            Element.Kind.INVOCATION_TRANSMISSION,
+            Transmission(False, True, True)),
+        Element(
+            Element.Kind.SERVICE_TRANSMISSION, Transmission(False, True, True)),
+    ),
+    Outcome(base.Outcome.COMPLETED, base.Outcome.COMPLETED))
+
+
+# TODO(issue 2959): Finish this test suite. This tuple of sequences should
+# contain at least the values in the Cartesian product of (half-duplex,
+# full-duplex) * (zero payloads, one payload, test_constants.STREAM_LENGTH
+# payloads) * (completion, cancellation, expiration, programming defect in
+# servicer code).
+SEQUENCES = (
+    _EASY,
+    _PEASY,
+)
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/base/_state.py b/src/python/grpcio_test/grpc_test/framework/interfaces/base/_state.py
new file mode 100644
index 0000000000000000000000000000000000000000..21cf33aeb6aa67c4c39ab1b4b7c2212620dc80b0
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/base/_state.py
@@ -0,0 +1,55 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Part of the tests of the base interface of RPC Framework."""
+
+
+class OperationState(object):
+
+  def __init__(self):
+    self.invocation_initial_metadata_in_flight = None
+    self.invocation_initial_metadata_received = False
+    self.invocation_payloads_in_flight = []
+    self.invocation_payloads_received = 0
+    self.invocation_completion_in_flight = None
+    self.invocation_completion_received = False
+    self.service_initial_metadata_in_flight = None
+    self.service_initial_metadata_received = False
+    self.service_payloads_in_flight = []
+    self.service_payloads_received = 0
+    self.service_completion_in_flight = None
+    self.service_completion_received = False
+    self.invocation_side_invocation_allowance = 1
+    self.invocation_side_service_allowance = 1
+    self.service_side_invocation_allowance = 1
+    self.service_side_service_allowance = 1
+    self.invocation_allowance_in_flight = 0
+    self.service_allowance_in_flight = 0
+    self.invocation_side_outcome = None
+    self.service_side_outcome = None
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/base/test_cases.py b/src/python/grpcio_test/grpc_test/framework/interfaces/base/test_cases.py
new file mode 100644
index 0000000000000000000000000000000000000000..5c8b176da4f06b32f543647b84e389ad67a20eef
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/base/test_cases.py
@@ -0,0 +1,262 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Tests of the base interface of RPC Framework."""
+
+import logging
+import random
+import threading
+import time
+import unittest
+
+from grpc.framework.foundation import logging_pool
+from grpc.framework.interfaces.base import base
+from grpc.framework.interfaces.base import utilities
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.interfaces.base import _control
+from grpc_test.framework.interfaces.base import test_interfaces
+
+_SYNCHRONICITY_VARIATION = (('Sync', False), ('Async', True))
+
+_EMPTY_OUTCOME_DICT = {outcome: 0 for outcome in base.Outcome}
+
+
+class _Serialization(test_interfaces.Serialization):
+
+  def serialize_request(self, request):
+    return request + request
+
+  def deserialize_request(self, serialized_request):
+    return serialized_request[:len(serialized_request) / 2]
+
+  def serialize_response(self, response):
+    return response * 3
+
+  def deserialize_response(self, serialized_response):
+    return serialized_response[2 * len(serialized_response) / 3:]
+
+
+def _advance(quadruples, operator, controller):
+  try:
+    for quadruple in quadruples:
+      operator.advance(
+          initial_metadata=quadruple[0], payload=quadruple[1],
+          completion=quadruple[2], allowance=quadruple[3])
+  except Exception as e:  # pylint: disable=broad-except
+    controller.failed('Exception on advance: %e' % e)
+
+
+class _Operator(base.Operator):
+
+  def __init__(self, controller, on_advance, pool, operator_under_test):
+    self._condition = threading.Condition()
+    self._controller = controller
+    self._on_advance = on_advance
+    self._pool = pool
+    self._operator_under_test = operator_under_test
+    self._pending_advances = []
+
+  def set_operator_under_test(self, operator_under_test):
+    with self._condition:
+      self._operator_under_test = operator_under_test
+      pent_advances = self._pending_advances
+      self._pending_advances = []
+      pool = self._pool
+      controller = self._controller
+
+    if pool is None:
+      _advance(pent_advances, operator_under_test, controller)
+    else:
+      pool.submit(_advance, pent_advances, operator_under_test, controller)
+
+  def advance(
+      self, initial_metadata=None, payload=None, completion=None,
+      allowance=None):
+    on_advance = self._on_advance(
+        initial_metadata, payload, completion, allowance)
+    if on_advance.kind is _control.OnAdvance.Kind.ADVANCE:
+      with self._condition:
+        pool = self._pool
+        operator_under_test = self._operator_under_test
+        controller = self._controller
+
+      quadruple = (
+          on_advance.initial_metadata, on_advance.payload,
+          on_advance.completion, on_advance.allowance)
+      if pool is None:
+        _advance((quadruple,), operator_under_test, controller)
+      else:
+        pool.submit(_advance, (quadruple,), operator_under_test, controller)
+    elif on_advance.kind is _control.OnAdvance.Kind.DEFECT:
+      raise ValueError(
+          'Deliberately raised exception from Operator.advance (in a test)!')
+
+
+class _Servicer(base.Servicer):
+  """An base.Servicer with instrumented for testing."""
+
+  def __init__(self, group, method, controllers, pool):
+    self._condition = threading.Condition()
+    self._group = group
+    self._method = method
+    self._pool = pool
+    self._controllers = list(controllers)
+
+  def service(self, group, method, context, output_operator):
+    with self._condition:
+      controller = self._controllers.pop(0)
+      if group != self._group or method != self._method:
+        controller.fail(
+            '%s != %s or %s != %s' % (group, self._group, method, self._method))
+        raise base.NoSuchMethodError()
+      else:
+        operator = _Operator(
+            controller, controller.on_service_advance, self._pool,
+            output_operator)
+        outcome = context.add_termination_callback(
+            controller.service_on_termination)
+        if outcome is not None:
+          controller.service_on_termination(outcome)
+        return utilities.full_subscription(operator)
+
+
+class _OperationTest(unittest.TestCase):
+
+  def setUp(self):
+    if self._synchronicity_variation:
+      self._pool = logging_pool.pool(test_constants.POOL_SIZE)
+    else:
+      self._pool = None
+    self._controller = self._controller_creator.controller(
+        self._implementation, self._randomness)
+
+  def tearDown(self):
+    if self._synchronicity_variation:
+      self._pool.shutdown(wait=True)
+    else:
+      self._pool = None
+
+  def test_operation(self):
+    invocation = self._controller.invocation()
+    if invocation.subscription_kind is base.Subscription.Kind.FULL:
+      test_operator = _Operator(
+          self._controller, self._controller.on_invocation_advance,
+          self._pool, None)
+      subscription = utilities.full_subscription(test_operator)
+    else:
+      # TODO(nathaniel): support and test other subscription kinds.
+      self.fail('Non-full subscriptions not yet supported!')
+
+    servicer = _Servicer(
+        invocation.group, invocation.method, (self._controller,), self._pool)
+
+    invocation_end, service_end, memo = self._implementation.instantiate(
+        {(invocation.group, invocation.method): _Serialization()}, servicer)
+
+    try:
+      invocation_end.start()
+      service_end.start()
+      operation_context, operator_under_test = invocation_end.operate(
+          invocation.group, invocation.method, subscription, invocation.timeout,
+          initial_metadata=invocation.initial_metadata, payload=invocation.payload,
+          completion=invocation.completion)
+      test_operator.set_operator_under_test(operator_under_test)
+      outcome = operation_context.add_termination_callback(
+          self._controller.invocation_on_termination)
+      if outcome is not None:
+        self._controller.invocation_on_termination(outcome)
+    except Exception as e:  # pylint: disable=broad-except
+      self._controller.failed('Exception on invocation: %s' % e)
+      self.fail(e)
+
+    while True:
+      instruction = self._controller.poll()
+      if instruction.kind is _control.Instruction.Kind.ADVANCE:
+        try:
+          test_operator.advance(
+              *instruction.advance_args, **instruction.advance_kwargs)
+        except Exception as e:  # pylint: disable=broad-except
+          self._controller.failed('Exception on instructed advance: %s' % e)
+      elif instruction.kind is _control.Instruction.Kind.CANCEL:
+        try:
+          operation_context.cancel()
+        except Exception as e:  # pylint: disable=broad-except
+          self._controller.failed('Exception on cancel: %s' % e)
+      elif instruction.kind is _control.Instruction.Kind.CONCLUDE:
+        break
+
+    invocation_stop_event = invocation_end.stop(0)
+    service_stop_event = service_end.stop(0)
+    invocation_stop_event.wait()
+    service_stop_event.wait()
+    invocation_stats = invocation_end.operation_stats()
+    service_stats = service_end.operation_stats()
+
+    self._implementation.destantiate(memo)
+
+    self.assertTrue(
+        instruction.conclude_success, msg=instruction.conclude_message)
+
+    expected_invocation_stats = dict(_EMPTY_OUTCOME_DICT)
+    expected_invocation_stats[instruction.conclude_invocation_outcome] += 1
+    self.assertDictEqual(expected_invocation_stats, invocation_stats)
+    expected_service_stats = dict(_EMPTY_OUTCOME_DICT)
+    expected_service_stats[instruction.conclude_service_outcome] += 1
+    self.assertDictEqual(expected_service_stats, service_stats)
+
+
+def test_cases(implementation):
+  """Creates unittest.TestCase classes for a given Base implementation.
+
+  Args:
+    implementation: A test_interfaces.Implementation specifying creation and
+      destruction of the Base implementation under test.
+
+  Returns:
+    A sequence of subclasses of unittest.TestCase defining tests of the
+      specified Base layer implementation.
+  """
+  random_seed = hash(time.time())
+  logging.warning('Random seed for this execution: %s', random_seed)
+  randomness = random.Random(x=random_seed)
+
+  test_case_classes = []
+  for synchronicity_variation in _SYNCHRONICITY_VARIATION:
+    for controller_creator in _control.CONTROLLER_CREATORS:
+      name = ''.join(
+          (synchronicity_variation[0], controller_creator.name(), 'Test',))
+      test_case_classes.append(
+          type(name, (_OperationTest,),
+               {'_implementation': implementation,
+                '_randomness': randomness,
+                '_synchronicity_variation': synchronicity_variation[1],
+                '_controller_creator': controller_creator,
+               }))
+
+  return test_case_classes
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/base/test_interfaces.py b/src/python/grpcio_test/grpc_test/framework/interfaces/base/test_interfaces.py
new file mode 100644
index 0000000000000000000000000000000000000000..02426ab8460b6bc5cc3a3e5e3aaf3099aaacd180
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/base/test_interfaces.py
@@ -0,0 +1,186 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Interfaces used in tests of implementations of the Base layer."""
+
+import abc
+
+from grpc.framework.interfaces.base import base  # pylint: disable=unused-import
+
+
+class Serialization(object):
+  """Specifies serialization and deserialization of test payloads."""
+  __metaclass__ = abc.ABCMeta
+
+  def serialize_request(self, request):
+    """Serializes a request value used in a test.
+
+    Args:
+      request: A request value created by a test.
+
+    Returns:
+      A bytestring that is the serialization of the given request.
+    """
+    raise NotImplementedError()
+
+  def deserialize_request(self, serialized_request):
+    """Deserializes a request value used in a test.
+
+    Args:
+      serialized_request: A bytestring that is the serialization of some request
+        used in a test.
+
+    Returns:
+      The request value encoded by the given bytestring.
+    """
+    raise NotImplementedError()
+
+  def serialize_response(self, response):
+    """Serializes a response value used in a test.
+
+    Args:
+      response: A response value created by a test.
+
+    Returns:
+      A bytestring that is the serialization of the given response.
+    """
+    raise NotImplementedError()
+
+  def deserialize_response(self, serialized_response):
+    """Deserializes a response value used in a test.
+
+    Args:
+      serialized_response: A bytestring that is the serialization of some
+        response used in a test.
+
+    Returns:
+      The response value encoded by the given bytestring.
+    """
+    raise NotImplementedError()
+
+
+class Implementation(object):
+  """Specifies an implementation of the Base layer."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def instantiate(self, serializations, servicer):
+    """Instantiates the Base layer implementation to be used in a test.
+
+    Args:
+      serializations: A dict from group-method pair to Serialization object
+        specifying how to serialize and deserialize payload values used in the
+        test.
+      servicer: A base.Servicer object to be called to service RPCs made during
+        the test.
+
+    Returns:
+      A sequence of length three the first element of which is a
+        base.End to be used to invoke RPCs, the second element of which is a
+        base.End to be used to service invoked RPCs, and the third element of
+        which is an arbitrary memo object to be kept and passed to destantiate
+        at the conclusion of the test.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def destantiate(self, memo):
+    """Destroys the Base layer implementation under test.
+
+    Args:
+      memo: The object from the third position of the return value of a call to
+        instantiate.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def invocation_initial_metadata(self):
+    """Provides an operation's invocation-side initial metadata.
+
+    Returns:
+      A value to use for an operation's invocation-side initial metadata, or
+        None.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def service_initial_metadata(self):
+    """Provices an operation's service-side initial metadata.
+
+    Returns:
+      A value to use for an operation's service-side initial metadata, or
+        None.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def invocation_completion(self):
+    """Provides an operation's invocation-side completion.
+
+    Returns:
+      A base.Completion to use for an operation's invocation-side completion.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def service_completion(self):
+    """Provides an operation's service-side completion.
+
+    Returns:
+      A base.Completion to use for an operation's service-side completion.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def metadata_transmitted(self, original_metadata, transmitted_metadata):
+    """Identifies whether or not metadata was properly transmitted.
+
+    Args:
+      original_metadata: A metadata value passed to the system under test.
+      transmitted_metadata: The same metadata value after having been
+        transmitted through the system under test.
+
+    Returns:
+      Whether or not the metadata was properly transmitted.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def completion_transmitted(self, original_completion, transmitted_completion):
+    """Identifies whether or not a base.Completion was properly transmitted.
+
+    Args:
+      original_completion: A base.Completion passed to the system under test.
+      transmitted_completion: The same completion value after having been
+        transmitted through the system under test.
+
+    Returns:
+      Whether or not the completion was properly transmitted.
+    """
+    raise NotImplementedError()
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/__init__.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/__init__.py
new file mode 100644
index 0000000000000000000000000000000000000000..708651910607ffb686d781713f6893567821b9fd
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/__init__.py
@@ -0,0 +1,30 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_blocking_invocation_inline_service.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_blocking_invocation_inline_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..857ad5cf3e03c77e4ffd1712b71d057c197e0653
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_blocking_invocation_inline_service.py
@@ -0,0 +1,250 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Test code for the Face layer of RPC Framework."""
+
+import abc
+import unittest
+
+# test_interfaces is referenced from specification in this module.
+from grpc.framework.interfaces.face import face
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.common import test_control
+from grpc_test.framework.common import test_coverage
+from grpc_test.framework.interfaces.face import _digest
+from grpc_test.framework.interfaces.face import _stock_service
+from grpc_test.framework.interfaces.face import test_interfaces  # pylint: disable=unused-import
+
+
+class TestCase(test_coverage.Coverage, unittest.TestCase):
+  """A test of the Face layer of RPC Framework.
+
+  Concrete subclasses must have an "implementation" attribute of type
+  test_interfaces.Implementation and an "invoker_constructor" attribute of type
+  _invocation.InvokerConstructor.
+  """
+  __metaclass__ = abc.ABCMeta
+
+  NAME = 'BlockingInvocationInlineServiceTest'
+
+  def setUp(self):
+    """See unittest.TestCase.setUp for full specification.
+
+    Overriding implementations must call this implementation.
+    """
+    self._control = test_control.PauseFailControl()
+    self._digest = _digest.digest(
+        _stock_service.STOCK_TEST_SERVICE, self._control, None)
+
+    generic_stub, dynamic_stubs, self._memo = self.implementation.instantiate(
+        self._digest.methods, self._digest.inline_method_implementations, None)
+    self._invoker = self.invoker_constructor.construct_invoker(
+        generic_stub, dynamic_stubs, self._digest.methods)
+
+  def tearDown(self):
+    """See unittest.TestCase.tearDown for full specification.
+
+    Overriding implementations must call this implementation.
+    """
+    self.implementation.destantiate(self._memo)
+
+  def testSuccessfulUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        response = self._invoker.blocking(group, method)(
+            request, test_constants.LONG_TIMEOUT)
+
+        test_messages.verify(request, response, self)
+
+  def testSuccessfulUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        response_iterator = self._invoker.blocking(group, method)(
+            request, test_constants.LONG_TIMEOUT)
+        responses = list(response_iterator)
+
+        test_messages.verify(request, responses, self)
+
+  def testSuccessfulStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        response = self._invoker.blocking(group, method)(
+            iter(requests), test_constants.LONG_TIMEOUT)
+
+        test_messages.verify(requests, response, self)
+
+  def testSuccessfulStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        response_iterator = self._invoker.blocking(group, method)(
+            iter(requests), test_constants.LONG_TIMEOUT)
+        responses = list(response_iterator)
+
+        test_messages.verify(requests, responses, self)
+
+  def testSequentialInvocations(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        first_request = test_messages.request()
+        second_request = test_messages.request()
+
+        first_response = self._invoker.blocking(group, method)(
+            first_request, test_constants.LONG_TIMEOUT)
+
+        test_messages.verify(first_request, first_response, self)
+
+        second_response = self._invoker.blocking(group, method)(
+            second_request, test_constants.LONG_TIMEOUT)
+
+        test_messages.verify(second_request, second_response, self)
+
+  @unittest.skip('Parallel invocations impossible with blocking control flow!')
+  def testParallelInvocations(self):
+    raise NotImplementedError()
+
+  @unittest.skip('Parallel invocations impossible with blocking control flow!')
+  def testWaitingForSomeButNotAllParallelInvocations(self):
+    raise NotImplementedError()
+
+  @unittest.skip('Cancellation impossible with blocking control flow!')
+  def testCancelledUnaryRequestUnaryResponse(self):
+    raise NotImplementedError()
+
+  @unittest.skip('Cancellation impossible with blocking control flow!')
+  def testCancelledUnaryRequestStreamResponse(self):
+    raise NotImplementedError()
+
+  @unittest.skip('Cancellation impossible with blocking control flow!')
+  def testCancelledStreamRequestUnaryResponse(self):
+    raise NotImplementedError()
+
+  @unittest.skip('Cancellation impossible with blocking control flow!')
+  def testCancelledStreamRequestStreamResponse(self):
+    raise NotImplementedError()
+
+  def testExpiredUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.pause(), self.assertRaises(
+            face.ExpirationError):
+          self._invoker.blocking(group, method)(
+              request, test_constants.SHORT_TIMEOUT)
+
+  def testExpiredUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.pause(), self.assertRaises(
+            face.ExpirationError):
+          response_iterator = self._invoker.blocking(group, method)(
+              request, test_constants.SHORT_TIMEOUT)
+          list(response_iterator)
+
+  def testExpiredStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.pause(), self.assertRaises(
+            face.ExpirationError):
+          self._invoker.blocking(group, method)(
+              iter(requests), test_constants.SHORT_TIMEOUT)
+
+  def testExpiredStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.pause(), self.assertRaises(
+            face.ExpirationError):
+          response_iterator = self._invoker.blocking(group, method)(
+              iter(requests), test_constants.SHORT_TIMEOUT)
+          list(response_iterator)
+
+  def testFailedUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.fail(), self.assertRaises(face.RemoteError):
+          self._invoker.blocking(group, method)(
+              request, test_constants.LONG_TIMEOUT)
+
+  def testFailedUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.fail(), self.assertRaises(face.RemoteError):
+          response_iterator = self._invoker.blocking(group, method)(
+              request, test_constants.LONG_TIMEOUT)
+          list(response_iterator)
+
+  def testFailedStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.fail(), self.assertRaises(face.RemoteError):
+          self._invoker.blocking(group, method)(
+              iter(requests), test_constants.LONG_TIMEOUT)
+
+  def testFailedStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.fail(), self.assertRaises(face.RemoteError):
+          response_iterator = self._invoker.blocking(group, method)(
+              iter(requests), test_constants.LONG_TIMEOUT)
+          list(response_iterator)
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_digest.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_digest.py
new file mode 100644
index 0000000000000000000000000000000000000000..da56ed7b2752b362067c300f134b73ac13f202bb
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_digest.py
@@ -0,0 +1,444 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Code for making a service.TestService more amenable to use in tests."""
+
+import collections
+import threading
+
+# test_control, _service, and test_interfaces are referenced from specification
+# in this module.
+from grpc.framework.common import cardinality
+from grpc.framework.common import style
+from grpc.framework.foundation import stream
+from grpc.framework.foundation import stream_util
+from grpc.framework.interfaces.face import face
+from grpc_test.framework.common import test_control  # pylint: disable=unused-import
+from grpc_test.framework.interfaces.face import _service  # pylint: disable=unused-import
+from grpc_test.framework.interfaces.face import test_interfaces  # pylint: disable=unused-import
+
+_IDENTITY = lambda x: x
+
+
+class TestServiceDigest(
+    collections.namedtuple(
+        'TestServiceDigest',
+        ('methods',
+         'inline_method_implementations',
+         'event_method_implementations',
+         'multi_method_implementation',
+         'unary_unary_messages_sequences',
+         'unary_stream_messages_sequences',
+         'stream_unary_messages_sequences',
+         'stream_stream_messages_sequences',))):
+  """A transformation of a service.TestService.
+
+  Attributes:
+    methods: A dict from method group-name pair to test_interfaces.Method object
+      describing the RPC methods that may be called during the test.
+    inline_method_implementations: A dict from method group-name pair to
+      face.MethodImplementation object to be used in tests of in-line calls to
+      behaviors under test.
+    event_method_implementations: A dict from method group-name pair to
+      face.MethodImplementation object to be used in tests of event-driven calls
+      to behaviors under test.
+    multi_method_implementation: A face.MultiMethodImplementation to be used in
+      tests of generic calls to behaviors under test.
+    unary_unary_messages_sequences: A dict from method group-name pair to
+      sequence of service.UnaryUnaryTestMessages objects to be used to test the
+      identified method.
+    unary_stream_messages_sequences: A dict from method group-name pair to
+      sequence of service.UnaryStreamTestMessages objects to be used to test the
+      identified method.
+    stream_unary_messages_sequences: A dict from method group-name pair to
+      sequence of service.StreamUnaryTestMessages objects to be used to test the
+      identified method.
+    stream_stream_messages_sequences: A dict from method group-name pair to
+      sequence of service.StreamStreamTestMessages objects to be used to test
+      the identified method.
+  """
+
+
+class _BufferingConsumer(stream.Consumer):
+  """A trivial Consumer that dumps what it consumes in a user-mutable buffer."""
+
+  def __init__(self):
+    self.consumed = []
+    self.terminated = False
+
+  def consume(self, value):
+    self.consumed.append(value)
+
+  def terminate(self):
+    self.terminated = True
+
+  def consume_and_terminate(self, value):
+    self.consumed.append(value)
+    self.terminated = True
+
+
+class _InlineUnaryUnaryMethod(face.MethodImplementation):
+
+  def __init__(self, unary_unary_test_method, control):
+    self._test_method = unary_unary_test_method
+    self._control = control
+
+    self.cardinality = cardinality.Cardinality.UNARY_UNARY
+    self.style = style.Service.INLINE
+
+  def unary_unary_inline(self, request, context):
+    response_list = []
+    self._test_method.service(
+        request, response_list.append, context, self._control)
+    return response_list.pop(0)
+
+
+class _EventUnaryUnaryMethod(face.MethodImplementation):
+
+  def __init__(self, unary_unary_test_method, control, pool):
+    self._test_method = unary_unary_test_method
+    self._control = control
+    self._pool = pool
+
+    self.cardinality = cardinality.Cardinality.UNARY_UNARY
+    self.style = style.Service.EVENT
+
+  def unary_unary_event(self, request, response_callback, context):
+    if self._pool is None:
+      self._test_method.service(
+          request, response_callback, context, self._control)
+    else:
+      self._pool.submit(
+          self._test_method.service, request, response_callback, context,
+          self._control)
+
+
+class _InlineUnaryStreamMethod(face.MethodImplementation):
+
+  def __init__(self, unary_stream_test_method, control):
+    self._test_method = unary_stream_test_method
+    self._control = control
+
+    self.cardinality = cardinality.Cardinality.UNARY_STREAM
+    self.style = style.Service.INLINE
+
+  def unary_stream_inline(self, request, context):
+    response_consumer = _BufferingConsumer()
+    self._test_method.service(
+        request, response_consumer, context, self._control)
+    for response in response_consumer.consumed:
+      yield response
+
+
+class _EventUnaryStreamMethod(face.MethodImplementation):
+
+  def __init__(self, unary_stream_test_method, control, pool):
+    self._test_method = unary_stream_test_method
+    self._control = control
+    self._pool = pool
+
+    self.cardinality = cardinality.Cardinality.UNARY_STREAM
+    self.style = style.Service.EVENT
+
+  def unary_stream_event(self, request, response_consumer, context):
+    if self._pool is None:
+      self._test_method.service(
+          request, response_consumer, context, self._control)
+    else:
+      self._pool.submit(
+          self._test_method.service, request, response_consumer, context,
+          self._control)
+
+
+class _InlineStreamUnaryMethod(face.MethodImplementation):
+
+  def __init__(self, stream_unary_test_method, control):
+    self._test_method = stream_unary_test_method
+    self._control = control
+
+    self.cardinality = cardinality.Cardinality.STREAM_UNARY
+    self.style = style.Service.INLINE
+
+  def stream_unary_inline(self, request_iterator, context):
+    response_list = []
+    request_consumer = self._test_method.service(
+        response_list.append, context, self._control)
+    for request in request_iterator:
+      request_consumer.consume(request)
+    request_consumer.terminate()
+    return response_list.pop(0)
+
+
+class _EventStreamUnaryMethod(face.MethodImplementation):
+
+  def __init__(self, stream_unary_test_method, control, pool):
+    self._test_method = stream_unary_test_method
+    self._control = control
+    self._pool = pool
+
+    self.cardinality = cardinality.Cardinality.STREAM_UNARY
+    self.style = style.Service.EVENT
+
+  def stream_unary_event(self, response_callback, context):
+    request_consumer = self._test_method.service(
+        response_callback, context, self._control)
+    if self._pool is None:
+      return request_consumer
+    else:
+      return stream_util.ThreadSwitchingConsumer(request_consumer, self._pool)
+
+
+class _InlineStreamStreamMethod(face.MethodImplementation):
+
+  def __init__(self, stream_stream_test_method, control):
+    self._test_method = stream_stream_test_method
+    self._control = control
+
+    self.cardinality = cardinality.Cardinality.STREAM_STREAM
+    self.style = style.Service.INLINE
+
+  def stream_stream_inline(self, request_iterator, context):
+    response_consumer = _BufferingConsumer()
+    request_consumer = self._test_method.service(
+        response_consumer, context, self._control)
+
+    for request in request_iterator:
+      request_consumer.consume(request)
+      while response_consumer.consumed:
+        yield response_consumer.consumed.pop(0)
+    response_consumer.terminate()
+
+
+class _EventStreamStreamMethod(face.MethodImplementation):
+
+  def __init__(self, stream_stream_test_method, control, pool):
+    self._test_method = stream_stream_test_method
+    self._control = control
+    self._pool = pool
+
+    self.cardinality = cardinality.Cardinality.STREAM_STREAM
+    self.style = style.Service.EVENT
+
+  def stream_stream_event(self, response_consumer, context):
+    request_consumer = self._test_method.service(
+        response_consumer, context, self._control)
+    if self._pool is None:
+      return request_consumer
+    else:
+      return stream_util.ThreadSwitchingConsumer(request_consumer, self._pool)
+
+
+class _UnaryConsumer(stream.Consumer):
+  """A Consumer that only allows consumption of exactly one value."""
+
+  def __init__(self, action):
+    self._lock = threading.Lock()
+    self._action = action
+    self._consumed = False
+    self._terminated = False
+
+  def consume(self, value):
+    with self._lock:
+      if self._consumed:
+        raise ValueError('Unary consumer already consumed!')
+      elif self._terminated:
+        raise ValueError('Unary consumer already terminated!')
+      else:
+        self._consumed = True
+
+    self._action(value)
+
+  def terminate(self):
+    with self._lock:
+      if not self._consumed:
+        raise ValueError('Unary consumer hasn\'t yet consumed!')
+      elif self._terminated:
+        raise ValueError('Unary consumer already terminated!')
+      else:
+        self._terminated = True
+
+  def consume_and_terminate(self, value):
+    with self._lock:
+      if self._consumed:
+        raise ValueError('Unary consumer already consumed!')
+      elif self._terminated:
+        raise ValueError('Unary consumer already terminated!')
+      else:
+        self._consumed = True
+        self._terminated = True
+
+    self._action(value)
+
+
+class _UnaryUnaryAdaptation(object):
+
+  def __init__(self, unary_unary_test_method):
+    self._method = unary_unary_test_method
+
+  def service(self, response_consumer, context, control):
+    def action(request):
+      self._method.service(
+          request, response_consumer.consume_and_terminate, context, control)
+    return _UnaryConsumer(action)
+
+
+class _UnaryStreamAdaptation(object):
+
+  def __init__(self, unary_stream_test_method):
+    self._method = unary_stream_test_method
+
+  def service(self, response_consumer, context, control):
+    def action(request):
+      self._method.service(request, response_consumer, context, control)
+    return _UnaryConsumer(action)
+
+
+class _StreamUnaryAdaptation(object):
+
+  def __init__(self, stream_unary_test_method):
+    self._method = stream_unary_test_method
+
+  def service(self, response_consumer, context, control):
+    return self._method.service(
+        response_consumer.consume_and_terminate, context, control)
+
+
+class _MultiMethodImplementation(face.MultiMethodImplementation):
+
+  def __init__(self, methods, control, pool):
+    self._methods = methods
+    self._control = control
+    self._pool = pool
+
+  def service(self, group, name, response_consumer, context):
+    method = self._methods.get(group, name, None)
+    if method is None:
+      raise face.NoSuchMethodError(group, name)
+    elif self._pool is None:
+      return method(response_consumer, context, self._control)
+    else:
+      request_consumer = method(response_consumer, context, self._control)
+      return stream_util.ThreadSwitchingConsumer(request_consumer, self._pool)
+
+
+class _Assembly(
+    collections.namedtuple(
+        '_Assembly',
+        ['methods', 'inlines', 'events', 'adaptations', 'messages'])):
+  """An intermediate structure created when creating a TestServiceDigest."""
+
+
+def _assemble(
+    scenarios, identifiers, inline_method_constructor, event_method_constructor,
+    adapter, control, pool):
+  """Creates an _Assembly from the given scenarios."""
+  methods = {}
+  inlines = {}
+  events = {}
+  adaptations = {}
+  messages = {}
+  for identifier, scenario in scenarios.iteritems():
+    if identifier in identifiers:
+      raise ValueError('Repeated identifier "(%s, %s)"!' % identifier)
+
+    test_method = scenario[0]
+    inline_method = inline_method_constructor(test_method, control)
+    event_method = event_method_constructor(test_method, control, pool)
+    adaptation = adapter(test_method)
+
+    methods[identifier] = test_method
+    inlines[identifier] = inline_method
+    events[identifier] = event_method
+    adaptations[identifier] = adaptation
+    messages[identifier] = scenario[1]
+
+  return _Assembly(methods, inlines, events, adaptations, messages)
+
+
+def digest(service, control, pool):
+  """Creates a TestServiceDigest from a TestService.
+
+  Args:
+    service: A _service.TestService.
+    control: A test_control.Control.
+    pool: If RPC methods should be serviced in a separate thread, a thread pool.
+      None if RPC methods should be serviced in the thread belonging to the
+      run-time that calls for their service.
+
+  Returns:
+    A TestServiceDigest synthesized from the given service.TestService.
+  """
+  identifiers = set()
+
+  unary_unary = _assemble(
+      service.unary_unary_scenarios(), identifiers, _InlineUnaryUnaryMethod,
+      _EventUnaryUnaryMethod, _UnaryUnaryAdaptation, control, pool)
+  identifiers.update(unary_unary.inlines)
+
+  unary_stream = _assemble(
+      service.unary_stream_scenarios(), identifiers, _InlineUnaryStreamMethod,
+      _EventUnaryStreamMethod, _UnaryStreamAdaptation, control, pool)
+  identifiers.update(unary_stream.inlines)
+
+  stream_unary = _assemble(
+      service.stream_unary_scenarios(), identifiers, _InlineStreamUnaryMethod,
+      _EventStreamUnaryMethod, _StreamUnaryAdaptation, control, pool)
+  identifiers.update(stream_unary.inlines)
+
+  stream_stream = _assemble(
+      service.stream_stream_scenarios(), identifiers, _InlineStreamStreamMethod,
+      _EventStreamStreamMethod, _IDENTITY, control, pool)
+  identifiers.update(stream_stream.inlines)
+
+  methods = dict(unary_unary.methods)
+  methods.update(unary_stream.methods)
+  methods.update(stream_unary.methods)
+  methods.update(stream_stream.methods)
+  adaptations = dict(unary_unary.adaptations)
+  adaptations.update(unary_stream.adaptations)
+  adaptations.update(stream_unary.adaptations)
+  adaptations.update(stream_stream.adaptations)
+  inlines = dict(unary_unary.inlines)
+  inlines.update(unary_stream.inlines)
+  inlines.update(stream_unary.inlines)
+  inlines.update(stream_stream.inlines)
+  events = dict(unary_unary.events)
+  events.update(unary_stream.events)
+  events.update(stream_unary.events)
+  events.update(stream_stream.events)
+
+  return TestServiceDigest(
+      methods,
+      inlines,
+      events,
+      _MultiMethodImplementation(adaptations, control, pool),
+      unary_unary.messages,
+      unary_stream.messages,
+      stream_unary.messages,
+      stream_stream.messages)
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_event_invocation_synchronous_event_service.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_event_invocation_synchronous_event_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..ea5cdeaea300fe9ffa7ded3e68edc72ca18b3c7e
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_event_invocation_synchronous_event_service.py
@@ -0,0 +1,377 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Test code for the Face layer of RPC Framework."""
+
+import abc
+import unittest
+
+# test_interfaces is referenced from specification in this module.
+from grpc.framework.interfaces.face import face
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.common import test_control
+from grpc_test.framework.common import test_coverage
+from grpc_test.framework.interfaces.face import _digest
+from grpc_test.framework.interfaces.face import _receiver
+from grpc_test.framework.interfaces.face import _stock_service
+from grpc_test.framework.interfaces.face import test_interfaces  # pylint: disable=unused-import
+
+
+class TestCase(test_coverage.Coverage, unittest.TestCase):
+  """A test of the Face layer of RPC Framework.
+
+  Concrete subclasses must have an "implementation" attribute of type
+  test_interfaces.Implementation and an "invoker_constructor" attribute of type
+  _invocation.InvokerConstructor.
+  """
+  __metaclass__ = abc.ABCMeta
+
+  NAME = 'EventInvocationSynchronousEventServiceTest'
+
+  def setUp(self):
+    """See unittest.TestCase.setUp for full specification.
+
+    Overriding implementations must call this implementation.
+    """
+    self._control = test_control.PauseFailControl()
+    self._digest = _digest.digest(
+        _stock_service.STOCK_TEST_SERVICE, self._control, None)
+
+    generic_stub, dynamic_stubs, self._memo = self.implementation.instantiate(
+        self._digest.methods, self._digest.event_method_implementations, None)
+    self._invoker = self.invoker_constructor.construct_invoker(
+        generic_stub, dynamic_stubs, self._digest.methods)
+
+  def tearDown(self):
+    """See unittest.TestCase.tearDown for full specification.
+
+    Overriding implementations must call this implementation.
+    """
+    self.implementation.destantiate(self._memo)
+
+  def testSuccessfulUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        self._invoker.event(group, method)(
+            request, receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+        receiver.block_until_terminated()
+        response = receiver.unary_response()
+
+        test_messages.verify(request, response, self)
+
+  def testSuccessfulUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        self._invoker.event(group, method)(
+            request, receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+        receiver.block_until_terminated()
+        responses = receiver.stream_responses()
+
+        test_messages.verify(request, responses, self)
+
+  def testSuccessfulStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        receiver = _receiver.Receiver()
+
+        call_consumer = self._invoker.event(group, method)(
+            receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+        for request in requests:
+          call_consumer.consume(request)
+        call_consumer.terminate()
+        receiver.block_until_terminated()
+        response = receiver.unary_response()
+
+        test_messages.verify(requests, response, self)
+
+  def testSuccessfulStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        receiver = _receiver.Receiver()
+
+        call_consumer = self._invoker.event(group, method)(
+            receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+        for request in requests:
+          call_consumer.consume(request)
+        call_consumer.terminate()
+        receiver.block_until_terminated()
+        responses = receiver.stream_responses()
+
+        test_messages.verify(requests, responses, self)
+
+  def testSequentialInvocations(self):
+    # pylint: disable=cell-var-from-loop
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        first_request = test_messages.request()
+        second_request = test_messages.request()
+        second_receiver = _receiver.Receiver()
+
+        def make_second_invocation():
+          self._invoker.event(group, method)(
+              second_request, second_receiver, second_receiver.abort,
+              test_constants.LONG_TIMEOUT)
+
+        class FirstReceiver(_receiver.Receiver):
+
+          def complete(self, terminal_metadata, code, details):
+            super(FirstReceiver, self).complete(
+                terminal_metadata, code, details)
+            make_second_invocation()
+
+        first_receiver = FirstReceiver()
+
+        self._invoker.event(group, method)(
+            first_request, first_receiver, first_receiver.abort,
+            test_constants.LONG_TIMEOUT)
+        second_receiver.block_until_terminated()
+
+        first_response = first_receiver.unary_response()
+        second_response = second_receiver.unary_response()
+        test_messages.verify(first_request, first_response, self)
+        test_messages.verify(second_request, second_response, self)
+
+  def testParallelInvocations(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        first_request = test_messages.request()
+        first_receiver = _receiver.Receiver()
+        second_request = test_messages.request()
+        second_receiver = _receiver.Receiver()
+
+        self._invoker.event(group, method)(
+            first_request, first_receiver, first_receiver.abort,
+            test_constants.LONG_TIMEOUT)
+        self._invoker.event(group, method)(
+            second_request, second_receiver, second_receiver.abort,
+            test_constants.LONG_TIMEOUT)
+        first_receiver.block_until_terminated()
+        second_receiver.block_until_terminated()
+
+        first_response = first_receiver.unary_response()
+        second_response = second_receiver.unary_response()
+        test_messages.verify(first_request, first_response, self)
+        test_messages.verify(second_request, second_response, self)
+
+  @unittest.skip('TODO(nathaniel): implement.')
+  def testWaitingForSomeButNotAllParallelInvocations(self):
+    raise NotImplementedError()
+
+  def testCancelledUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        with self._control.pause():
+          call = self._invoker.event(group, method)(
+              request, receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+          call.cancel()
+          receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.CANCELLED, receiver.abortion().kind)
+
+  def testCancelledUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        call = self._invoker.event(group, method)(
+            request, receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+        call.cancel()
+        receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.CANCELLED, receiver.abortion().kind)
+
+  def testCancelledStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        receiver = _receiver.Receiver()
+
+        call_consumer = self._invoker.event(group, method)(
+            receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+        for request in requests:
+          call_consumer.consume(request)
+        call_consumer.cancel()
+        receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.CANCELLED, receiver.abortion().kind)
+
+  def testCancelledStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for unused_test_messages in test_messages_sequence:
+        receiver = _receiver.Receiver()
+
+        call_consumer = self._invoker.event(group, method)(
+            receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+        call_consumer.cancel()
+        receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.CANCELLED, receiver.abortion().kind)
+
+  def testExpiredUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        with self._control.pause():
+          self._invoker.event(group, method)(
+              request, receiver, receiver.abort, test_constants.SHORT_TIMEOUT)
+          receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.EXPIRED, receiver.abortion().kind)
+
+  def testExpiredUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        with self._control.pause():
+          self._invoker.event(group, method)(
+              request, receiver, receiver.abort, test_constants.SHORT_TIMEOUT)
+          receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.EXPIRED, receiver.abortion().kind)
+
+  def testExpiredStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for unused_test_messages in test_messages_sequence:
+        receiver = _receiver.Receiver()
+
+        self._invoker.event(group, method)(
+            receiver, receiver.abort, test_constants.SHORT_TIMEOUT)
+        receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.EXPIRED, receiver.abortion().kind)
+
+  def testExpiredStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        receiver = _receiver.Receiver()
+
+        call_consumer = self._invoker.event(group, method)(
+            receiver, receiver.abort, test_constants.SHORT_TIMEOUT)
+        for request in requests:
+          call_consumer.consume(request)
+        receiver.block_until_terminated()
+
+        self.assertIs(face.Abortion.Kind.EXPIRED, receiver.abortion().kind)
+
+  def testFailedUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        with self._control.fail():
+          self._invoker.event(group, method)(
+              request, receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+          receiver.block_until_terminated()
+
+        self.assertIs(
+            face.Abortion.Kind.REMOTE_FAILURE, receiver.abortion().kind)
+
+  def testFailedUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+        receiver = _receiver.Receiver()
+
+        with self._control.fail():
+          self._invoker.event(group, method)(
+              request, receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+          receiver.block_until_terminated()
+
+        self.assertIs(
+            face.Abortion.Kind.REMOTE_FAILURE, receiver.abortion().kind)
+
+  def testFailedStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        receiver = _receiver.Receiver()
+
+        with self._control.fail():
+          call_consumer = self._invoker.event(group, method)(
+              receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+          for request in requests:
+            call_consumer.consume(request)
+          call_consumer.terminate()
+          receiver.block_until_terminated()
+
+        self.assertIs(
+            face.Abortion.Kind.REMOTE_FAILURE, receiver.abortion().kind)
+
+  def testFailedStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        receiver = _receiver.Receiver()
+
+        with self._control.fail():
+          call_consumer = self._invoker.event(group, method)(
+              receiver, receiver.abort, test_constants.LONG_TIMEOUT)
+          for request in requests:
+            call_consumer.consume(request)
+          call_consumer.terminate()
+          receiver.block_until_terminated()
+
+        self.assertIs(
+            face.Abortion.Kind.REMOTE_FAILURE, receiver.abortion().kind)
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_future_invocation_asynchronous_event_service.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..a649362cef8dad54fc5052036ba134381f5bec08
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_future_invocation_asynchronous_event_service.py
@@ -0,0 +1,378 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Test code for the Face layer of RPC Framework."""
+
+import abc
+import contextlib
+import threading
+import unittest
+
+# test_interfaces is referenced from specification in this module.
+from grpc.framework.foundation import logging_pool
+from grpc.framework.interfaces.face import face
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.common import test_control
+from grpc_test.framework.common import test_coverage
+from grpc_test.framework.interfaces.face import _digest
+from grpc_test.framework.interfaces.face import _stock_service
+from grpc_test.framework.interfaces.face import test_interfaces  # pylint: disable=unused-import
+
+
+class _PauseableIterator(object):
+
+  def __init__(self, upstream):
+    self._upstream = upstream
+    self._condition = threading.Condition()
+    self._paused = False
+
+  @contextlib.contextmanager
+  def pause(self):
+    with self._condition:
+      self._paused = True
+    yield
+    with self._condition:
+      self._paused = False
+      self._condition.notify_all()
+
+  def __iter__(self):
+    return self
+
+  def next(self):
+    with self._condition:
+      while self._paused:
+        self._condition.wait()
+    return next(self._upstream)
+
+
+class TestCase(test_coverage.Coverage, unittest.TestCase):
+  """A test of the Face layer of RPC Framework.
+
+  Concrete subclasses must have an "implementation" attribute of type
+  test_interfaces.Implementation and an "invoker_constructor" attribute of type
+  _invocation.InvokerConstructor.
+  """
+  __metaclass__ = abc.ABCMeta
+
+  NAME = 'FutureInvocationAsynchronousEventServiceTest'
+
+  def setUp(self):
+    """See unittest.TestCase.setUp for full specification.
+
+    Overriding implementations must call this implementation.
+    """
+    self._control = test_control.PauseFailControl()
+    self._digest_pool = logging_pool.pool(test_constants.POOL_SIZE)
+    self._digest = _digest.digest(
+        _stock_service.STOCK_TEST_SERVICE, self._control, self._digest_pool)
+
+    generic_stub, dynamic_stubs, self._memo = self.implementation.instantiate(
+        self._digest.methods, self._digest.event_method_implementations, None)
+    self._invoker = self.invoker_constructor.construct_invoker(
+        generic_stub, dynamic_stubs, self._digest.methods)
+
+  def tearDown(self):
+    """See unittest.TestCase.tearDown for full specification.
+
+    Overriding implementations must call this implementation.
+    """
+    self.implementation.destantiate(self._memo)
+    self._digest_pool.shutdown(wait=True)
+
+  def testSuccessfulUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        response_future = self._invoker.future(group, method)(
+            request, test_constants.LONG_TIMEOUT)
+        response = response_future.result()
+
+        test_messages.verify(request, response, self)
+
+  def testSuccessfulUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        response_iterator = self._invoker.future(group, method)(
+            request, test_constants.LONG_TIMEOUT)
+        responses = list(response_iterator)
+
+        test_messages.verify(request, responses, self)
+
+  def testSuccessfulStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        request_iterator = _PauseableIterator(iter(requests))
+
+        # Use of a paused iterator of requests allows us to test that control is
+        # returned to calling code before the iterator yields any requests.
+        with request_iterator.pause():
+          response_future = self._invoker.future(group, method)(
+              request_iterator, test_constants.LONG_TIMEOUT)
+        response = response_future.result()
+
+        test_messages.verify(requests, response, self)
+
+  def testSuccessfulStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+        request_iterator = _PauseableIterator(iter(requests))
+
+        # Use of a paused iterator of requests allows us to test that control is
+        # returned to calling code before the iterator yields any requests.
+        with request_iterator.pause():
+          response_iterator = self._invoker.future(group, method)(
+              request_iterator, test_constants.LONG_TIMEOUT)
+        responses = list(response_iterator)
+
+        test_messages.verify(requests, responses, self)
+
+  def testSequentialInvocations(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        first_request = test_messages.request()
+        second_request = test_messages.request()
+
+        first_response_future = self._invoker.future(group, method)(
+            first_request, test_constants.LONG_TIMEOUT)
+        first_response = first_response_future.result()
+
+        test_messages.verify(first_request, first_response, self)
+
+        second_response_future = self._invoker.future(group, method)(
+            second_request, test_constants.LONG_TIMEOUT)
+        second_response = second_response_future.result()
+
+        test_messages.verify(second_request, second_response, self)
+
+  def testParallelInvocations(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        first_request = test_messages.request()
+        second_request = test_messages.request()
+
+        first_response_future = self._invoker.future(group, method)(
+            first_request, test_constants.LONG_TIMEOUT)
+        second_response_future = self._invoker.future(group, method)(
+            second_request, test_constants.LONG_TIMEOUT)
+        first_response = first_response_future.result()
+        second_response = second_response_future.result()
+
+        test_messages.verify(first_request, first_response, self)
+        test_messages.verify(second_request, second_response, self)
+
+  @unittest.skip('TODO(nathaniel): implement.')
+  def testWaitingForSomeButNotAllParallelInvocations(self):
+    raise NotImplementedError()
+
+  def testCancelledUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.pause():
+          response_future = self._invoker.future(group, method)(
+              request, test_constants.LONG_TIMEOUT)
+          cancel_method_return_value = response_future.cancel()
+
+        self.assertFalse(cancel_method_return_value)
+        self.assertTrue(response_future.cancelled())
+
+  def testCancelledUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.pause():
+          response_iterator = self._invoker.future(group, method)(
+              request, test_constants.LONG_TIMEOUT)
+          response_iterator.cancel()
+
+        with self.assertRaises(face.CancellationError):
+          next(response_iterator)
+
+  def testCancelledStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.pause():
+          response_future = self._invoker.future(group, method)(
+              iter(requests), test_constants.LONG_TIMEOUT)
+          cancel_method_return_value = response_future.cancel()
+
+        self.assertFalse(cancel_method_return_value)
+        self.assertTrue(response_future.cancelled())
+
+  def testCancelledStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.pause():
+          response_iterator = self._invoker.future(group, method)(
+              iter(requests), test_constants.LONG_TIMEOUT)
+          response_iterator.cancel()
+
+        with self.assertRaises(face.CancellationError):
+          next(response_iterator)
+
+  def testExpiredUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.pause():
+          response_future = self._invoker.future(
+              group, method)(request, test_constants.SHORT_TIMEOUT)
+          self.assertIsInstance(
+              response_future.exception(), face.ExpirationError)
+          with self.assertRaises(face.ExpirationError):
+            response_future.result()
+
+  def testExpiredUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.pause():
+          response_iterator = self._invoker.future(group, method)(
+              request, test_constants.SHORT_TIMEOUT)
+          with self.assertRaises(face.ExpirationError):
+            list(response_iterator)
+
+  def testExpiredStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.pause():
+          response_future = self._invoker.future(group, method)(
+              iter(requests), test_constants.SHORT_TIMEOUT)
+          self.assertIsInstance(
+              response_future.exception(), face.ExpirationError)
+          with self.assertRaises(face.ExpirationError):
+            response_future.result()
+
+  def testExpiredStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.pause():
+          response_iterator = self._invoker.future(group, method)(
+              iter(requests), test_constants.SHORT_TIMEOUT)
+          with self.assertRaises(face.ExpirationError):
+            list(response_iterator)
+
+  def testFailedUnaryRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        with self._control.fail():
+          response_future = self._invoker.future(group, method)(
+              request, test_constants.SHORT_TIMEOUT)
+
+          # Because the servicer fails outside of the thread from which the
+          # servicer-side runtime called into it its failure is
+          # indistinguishable from simply not having called its
+          # response_callback before the expiration of the RPC.
+          self.assertIsInstance(
+              response_future.exception(), face.ExpirationError)
+          with self.assertRaises(face.ExpirationError):
+            response_future.result()
+
+  def testFailedUnaryRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.unary_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        request = test_messages.request()
+
+        # Because the servicer fails outside of the thread from which the
+        # servicer-side runtime called into it its failure is indistinguishable
+        # from simply not having called its response_consumer before the
+        # expiration of the RPC.
+        with self._control.fail(), self.assertRaises(face.ExpirationError):
+          response_iterator = self._invoker.future(group, method)(
+              request, test_constants.SHORT_TIMEOUT)
+          list(response_iterator)
+
+  def testFailedStreamRequestUnaryResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_unary_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        with self._control.fail():
+          response_future = self._invoker.future(group, method)(
+              iter(requests), test_constants.SHORT_TIMEOUT)
+
+          # Because the servicer fails outside of the thread from which the
+          # servicer-side runtime called into it its failure is
+          # indistinguishable from simply not having called its
+          # response_callback before the expiration of the RPC.
+          self.assertIsInstance(
+              response_future.exception(), face.ExpirationError)
+          with self.assertRaises(face.ExpirationError):
+            response_future.result()
+
+  def testFailedStreamRequestStreamResponse(self):
+    for (group, method), test_messages_sequence in (
+        self._digest.stream_stream_messages_sequences.iteritems()):
+      for test_messages in test_messages_sequence:
+        requests = test_messages.requests()
+
+        # Because the servicer fails outside of the thread from which the
+        # servicer-side runtime called into it its failure is indistinguishable
+        # from simply not having called its response_consumer before the
+        # expiration of the RPC.
+        with self._control.fail(), self.assertRaises(face.ExpirationError):
+          response_iterator = self._invoker.future(group, method)(
+              iter(requests), test_constants.SHORT_TIMEOUT)
+          list(response_iterator)
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_invocation.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_invocation.py
new file mode 100644
index 0000000000000000000000000000000000000000..448e845a08ddb4859dea24d19515a2f09e3fc5f6
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_invocation.py
@@ -0,0 +1,213 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Coverage across the Face layer's generic-to-dynamic range for invocation."""
+
+import abc
+
+from grpc.framework.common import cardinality
+
+_CARDINALITY_TO_GENERIC_BLOCKING_BEHAVIOR = {
+    cardinality.Cardinality.UNARY_UNARY: 'blocking_unary_unary',
+    cardinality.Cardinality.UNARY_STREAM: 'inline_unary_stream',
+    cardinality.Cardinality.STREAM_UNARY: 'blocking_stream_unary',
+    cardinality.Cardinality.STREAM_STREAM: 'inline_stream_stream',
+}
+
+_CARDINALITY_TO_GENERIC_FUTURE_BEHAVIOR = {
+    cardinality.Cardinality.UNARY_UNARY: 'future_unary_unary',
+    cardinality.Cardinality.UNARY_STREAM: 'inline_unary_stream',
+    cardinality.Cardinality.STREAM_UNARY: 'future_stream_unary',
+    cardinality.Cardinality.STREAM_STREAM: 'inline_stream_stream',
+}
+
+_CARDINALITY_TO_GENERIC_EVENT_BEHAVIOR = {
+    cardinality.Cardinality.UNARY_UNARY: 'event_unary_unary',
+    cardinality.Cardinality.UNARY_STREAM: 'event_unary_stream',
+    cardinality.Cardinality.STREAM_UNARY: 'event_stream_unary',
+    cardinality.Cardinality.STREAM_STREAM: 'event_stream_stream',
+}
+
+_CARDINALITY_TO_MULTI_CALLABLE_ATTRIBUTE = {
+    cardinality.Cardinality.UNARY_UNARY: 'unary_unary',
+    cardinality.Cardinality.UNARY_STREAM: 'unary_stream',
+    cardinality.Cardinality.STREAM_UNARY: 'stream_unary',
+    cardinality.Cardinality.STREAM_STREAM: 'stream_stream',
+}
+
+
+class Invoker(object):
+  """A type used to invoke test RPCs."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def blocking(self, group, name):
+    """Invokes an RPC with blocking control flow."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def future(self, group, name):
+    """Invokes an RPC with future control flow."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def event(self, group, name):
+    """Invokes an RPC with event control flow."""
+    raise NotImplementedError()
+
+
+class InvokerConstructor(object):
+  """A type used to create Invokers."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def name(self):
+    """Specifies the name of the Invoker constructed by this object."""
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def construct_invoker(self, generic_stub, dynamic_stubs, methods):
+    """Constructs an Invoker for the given stubs and methods."""
+    raise NotImplementedError()
+
+
+class _GenericInvoker(Invoker):
+
+  def __init__(self, generic_stub, methods):
+    self._stub = generic_stub
+    self._methods = methods
+
+  def _behavior(self, group, name, cardinality_to_generic_method):
+    method_cardinality = self._methods[group, name].cardinality()
+    behavior = getattr(
+        self._stub, cardinality_to_generic_method[method_cardinality])
+    return lambda *args, **kwargs: behavior(group, name, *args, **kwargs)
+
+  def blocking(self, group, name):
+    return self._behavior(
+        group, name, _CARDINALITY_TO_GENERIC_BLOCKING_BEHAVIOR)
+
+  def future(self, group, name):
+    return self._behavior(group, name, _CARDINALITY_TO_GENERIC_FUTURE_BEHAVIOR)
+
+  def event(self, group, name):
+    return self._behavior(group, name, _CARDINALITY_TO_GENERIC_EVENT_BEHAVIOR)
+
+
+class _GenericInvokerConstructor(InvokerConstructor):
+
+  def name(self):
+    return 'GenericInvoker'
+
+  def construct_invoker(self, generic_stub, dynamic_stub, methods):
+    return _GenericInvoker(generic_stub, methods)
+
+
+class _MultiCallableInvoker(Invoker):
+
+  def __init__(self, generic_stub, methods):
+    self._stub = generic_stub
+    self._methods = methods
+
+  def _multi_callable(self, group, name):
+    method_cardinality = self._methods[group, name].cardinality()
+    behavior = getattr(
+        self._stub,
+        _CARDINALITY_TO_MULTI_CALLABLE_ATTRIBUTE[method_cardinality])
+    return behavior(group, name)
+
+  def blocking(self, group, name):
+    return self._multi_callable(group, name)
+
+  def future(self, group, name):
+    method_cardinality = self._methods[group, name].cardinality()
+    behavior = getattr(
+        self._stub,
+        _CARDINALITY_TO_MULTI_CALLABLE_ATTRIBUTE[method_cardinality])
+    if method_cardinality in (
+        cardinality.Cardinality.UNARY_UNARY,
+        cardinality.Cardinality.STREAM_UNARY):
+      return behavior(group, name).future
+    else:
+      return behavior(group, name)
+
+  def event(self, group, name):
+    return self._multi_callable(group, name).event
+
+
+class _MultiCallableInvokerConstructor(InvokerConstructor):
+
+  def name(self):
+    return 'MultiCallableInvoker'
+
+  def construct_invoker(self, generic_stub, dynamic_stub, methods):
+    return _MultiCallableInvoker(generic_stub, methods)
+
+
+class _DynamicInvoker(Invoker):
+
+  def __init__(self, dynamic_stubs, methods):
+    self._stubs = dynamic_stubs
+    self._methods = methods
+
+  def blocking(self, group, name):
+    return getattr(self._stubs[group], name)
+
+  def future(self, group, name):
+    if self._methods[group, name].cardinality() in (
+        cardinality.Cardinality.UNARY_UNARY,
+        cardinality.Cardinality.STREAM_UNARY):
+      return getattr(self._stubs[group], name).future
+    else:
+      return getattr(self._stubs[group], name)
+
+  def event(self, group, name):
+    return getattr(self._stubs[group], name).event
+
+
+class _DynamicInvokerConstructor(InvokerConstructor):
+
+  def name(self):
+    return 'DynamicInvoker'
+
+  def construct_invoker(self, generic_stub, dynamic_stubs, methods):
+    return _DynamicInvoker(dynamic_stubs, methods)
+
+
+def invoker_constructors():
+  """Creates a sequence of InvokerConstructors to use in tests of RPCs.
+
+  Returns:
+    A sequence of InvokerConstructors.
+  """
+  return (
+      _GenericInvokerConstructor(),
+      _MultiCallableInvokerConstructor(),
+      _DynamicInvokerConstructor(),
+  )
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_receiver.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_receiver.py
new file mode 100644
index 0000000000000000000000000000000000000000..2e444ff09d95b72fb8faeb8a89f4d7cec51cc47c
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_receiver.py
@@ -0,0 +1,95 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""A utility useful in tests of asynchronous, event-driven interfaces."""
+
+import threading
+
+from grpc.framework.interfaces.face import face
+
+
+class Receiver(face.ResponseReceiver):
+  """A utility object useful in tests of asynchronous code."""
+
+  def __init__(self):
+    self._condition = threading.Condition()
+    self._initial_metadata = None
+    self._responses = []
+    self._terminal_metadata = None
+    self._code = None
+    self._details = None
+    self._completed = False
+    self._abortion = None
+
+  def abort(self, abortion):
+    with self._condition:
+      self._abortion = abortion
+      self._condition.notify_all()
+
+  def initial_metadata(self, initial_metadata):
+    with self._condition:
+      self._initial_metadata = initial_metadata
+
+  def response(self, response):
+    with self._condition:
+      self._responses.append(response)
+
+  def complete(self, terminal_metadata, code, details):
+    with self._condition:
+      self._terminal_metadata = terminal_metadata
+      self._code = code
+      self._details = details
+      self._completed = True
+      self._condition.notify_all()
+
+  def block_until_terminated(self):
+    with self._condition:
+      while self._abortion is None and not self._completed:
+        self._condition.wait()
+
+  def unary_response(self):
+    with self._condition:
+      if self._abortion is not None:
+        raise AssertionError('Aborted with abortion "%s"!' % self._abortion)
+      elif len(self._responses) != 1:
+        raise AssertionError(
+            '%d responses received, not exactly one!', len(self._responses))
+      else:
+        return self._responses[0]
+
+  def stream_responses(self):
+    with self._condition:
+      if self._abortion is None:
+        return list(self._responses)
+      else:
+        raise AssertionError('Aborted with abortion "%s"!' % self._abortion)
+
+  def abortion(self):
+    with self._condition:
+      return self._abortion
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_service.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..e25b8a038cc57c39bb04ee0b2fbd15f9da124898
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_service.py
@@ -0,0 +1,332 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Private interfaces implemented by data sets used in Face-layer tests."""
+
+import abc
+
+# face is referenced from specification in this module.
+from grpc.framework.interfaces.face import face  # pylint: disable=unused-import
+from grpc_test.framework.interfaces.face import test_interfaces
+
+
+class UnaryUnaryTestMethodImplementation(test_interfaces.Method):
+  """A controllable implementation of a unary-unary method."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def service(self, request, response_callback, context, control):
+    """Services an RPC that accepts one message and produces one message.
+
+    Args:
+      request: The single request message for the RPC.
+      response_callback: A callback to be called to accept the response message
+        of the RPC.
+      context: An face.ServicerContext object.
+      control: A test_control.Control to control execution of this method.
+
+    Raises:
+      abandonment.Abandoned: May or may not be raised when the RPC has been
+        aborted.
+    """
+    raise NotImplementedError()
+
+
+class UnaryUnaryTestMessages(object):
+  """A type for unary-request-unary-response message pairings."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def request(self):
+    """Affords a request message.
+
+    Implementations of this method should return a different message with each
+    call so that multiple test executions of the test method may be made with
+    different inputs.
+
+    Returns:
+      A request message.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def verify(self, request, response, test_case):
+    """Verifies that the computed response matches the given request.
+
+    Args:
+      request: A request message.
+      response: A response message.
+      test_case: A unittest.TestCase object affording useful assertion methods.
+
+    Raises:
+      AssertionError: If the request and response do not match, indicating that
+        there was some problem executing the RPC under test.
+    """
+    raise NotImplementedError()
+
+
+class UnaryStreamTestMethodImplementation(test_interfaces.Method):
+  """A controllable implementation of a unary-stream method."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def service(self, request, response_consumer, context, control):
+    """Services an RPC that takes one message and produces a stream of messages.
+
+    Args:
+      request: The single request message for the RPC.
+      response_consumer: A stream.Consumer to be called to accept the response
+        messages of the RPC.
+      context: A face.ServicerContext object.
+      control: A test_control.Control to control execution of this method.
+
+    Raises:
+      abandonment.Abandoned: May or may not be raised when the RPC has been
+        aborted.
+    """
+    raise NotImplementedError()
+
+
+class UnaryStreamTestMessages(object):
+  """A type for unary-request-stream-response message pairings."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def request(self):
+    """Affords a request message.
+
+    Implementations of this method should return a different message with each
+    call so that multiple test executions of the test method may be made with
+    different inputs.
+
+    Returns:
+      A request message.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def verify(self, request, responses, test_case):
+    """Verifies that the computed responses match the given request.
+
+    Args:
+      request: A request message.
+      responses: A sequence of response messages.
+      test_case: A unittest.TestCase object affording useful assertion methods.
+
+    Raises:
+      AssertionError: If the request and responses do not match, indicating that
+        there was some problem executing the RPC under test.
+    """
+    raise NotImplementedError()
+
+
+class StreamUnaryTestMethodImplementation(test_interfaces.Method):
+  """A controllable implementation of a stream-unary method."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def service(self, response_callback, context, control):
+    """Services an RPC that takes a stream of messages and produces one message.
+
+    Args:
+      response_callback: A callback to be called to accept the response message
+        of the RPC.
+      context: A face.ServicerContext object.
+      control: A test_control.Control to control execution of this method.
+
+    Returns:
+      A stream.Consumer with which to accept the request messages of the RPC.
+        The consumer returned from this method may or may not be invoked to
+        completion: in the case of RPC abortion, RPC Framework will simply stop
+        passing messages to this object. Implementations must not assume that
+        this object will be called to completion of the request stream or even
+        called at all.
+
+    Raises:
+      abandonment.Abandoned: May or may not be raised when the RPC has been
+        aborted.
+    """
+    raise NotImplementedError()
+
+
+class StreamUnaryTestMessages(object):
+  """A type for stream-request-unary-response message pairings."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def requests(self):
+    """Affords a sequence of request messages.
+
+    Implementations of this method should return a different sequences with each
+    call so that multiple test executions of the test method may be made with
+    different inputs.
+
+    Returns:
+      A sequence of request messages.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def verify(self, requests, response, test_case):
+    """Verifies that the computed response matches the given requests.
+
+    Args:
+      requests: A sequence of request messages.
+      response: A response message.
+      test_case: A unittest.TestCase object affording useful assertion methods.
+
+    Raises:
+      AssertionError: If the requests and response do not match, indicating that
+        there was some problem executing the RPC under test.
+    """
+    raise NotImplementedError()
+
+
+class StreamStreamTestMethodImplementation(test_interfaces.Method):
+  """A controllable implementation of a stream-stream method."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def service(self, response_consumer, context, control):
+    """Services an RPC that accepts and produces streams of messages.
+
+    Args:
+      response_consumer: A stream.Consumer to be called to accept the response
+        messages of the RPC.
+      context: A face.ServicerContext object.
+      control: A test_control.Control to control execution of this method.
+
+    Returns:
+      A stream.Consumer with which to accept the request messages of the RPC.
+        The consumer returned from this method may or may not be invoked to
+        completion: in the case of RPC abortion, RPC Framework will simply stop
+        passing messages to this object. Implementations must not assume that
+        this object will be called to completion of the request stream or even
+        called at all.
+
+    Raises:
+      abandonment.Abandoned: May or may not be raised when the RPC has been
+        aborted.
+    """
+    raise NotImplementedError()
+
+
+class StreamStreamTestMessages(object):
+  """A type for stream-request-stream-response message pairings."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def requests(self):
+    """Affords a sequence of request messages.
+
+    Implementations of this method should return a different sequences with each
+    call so that multiple test executions of the test method may be made with
+    different inputs.
+
+    Returns:
+      A sequence of request messages.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def verify(self, requests, responses, test_case):
+    """Verifies that the computed response matches the given requests.
+
+    Args:
+      requests: A sequence of request messages.
+      responses: A sequence of response messages.
+      test_case: A unittest.TestCase object affording useful assertion methods.
+
+    Raises:
+      AssertionError: If the requests and responses do not match, indicating
+        that there was some problem executing the RPC under test.
+    """
+    raise NotImplementedError()
+
+
+class TestService(object):
+  """A specification of implemented methods to use in tests."""
+
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def unary_unary_scenarios(self):
+    """Affords unary-request-unary-response test methods and their messages.
+
+    Returns:
+      A dict from method group-name pair to implementation/messages pair. The
+        first element of the pair is a UnaryUnaryTestMethodImplementation object
+        and the second element is a sequence of UnaryUnaryTestMethodMessages
+        objects.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def unary_stream_scenarios(self):
+    """Affords unary-request-stream-response test methods and their messages.
+
+    Returns:
+      A dict from method group-name pair to implementation/messages pair. The
+        first element of the pair is a UnaryStreamTestMethodImplementation
+        object and the second element is a sequence of
+        UnaryStreamTestMethodMessages objects.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def stream_unary_scenarios(self):
+    """Affords stream-request-unary-response test methods and their messages.
+
+    Returns:
+      A dict from method group-name pair to implementation/messages pair. The
+        first element of the pair is a StreamUnaryTestMethodImplementation
+        object and the second element is a sequence of
+        StreamUnaryTestMethodMessages objects.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def stream_stream_scenarios(self):
+    """Affords stream-request-stream-response test methods and their messages.
+
+    Returns:
+      A dict from method group-name pair to implementation/messages pair. The
+        first element of the pair is a StreamStreamTestMethodImplementation
+        object and the second element is a sequence of
+        StreamStreamTestMethodMessages objects.
+    """
+    raise NotImplementedError()
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/_stock_service.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_stock_service.py
new file mode 100644
index 0000000000000000000000000000000000000000..1dd2ec3633110726e6438d6d76752aba2e8edae9
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/_stock_service.py
@@ -0,0 +1,396 @@
+B# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Examples of Python implementations of the stock.proto Stock service."""
+
+from grpc.framework.common import cardinality
+from grpc.framework.foundation import abandonment
+from grpc.framework.foundation import stream
+from grpc_test.framework.common import test_constants
+from grpc_test.framework.interfaces.face import _service
+from grpc_test._junkdrawer import stock_pb2
+
+_STOCK_GROUP_NAME = 'Stock'
+_SYMBOL_FORMAT = 'test symbol:%03d'
+
+# A test-appropriate security-pricing function. :-P
+_price = lambda symbol_name: float(hash(symbol_name) % 4096)
+
+
+def _get_last_trade_price(stock_request, stock_reply_callback, control, active):
+  """A unary-request, unary-response test method."""
+  control.control()
+  if active():
+    stock_reply_callback(
+        stock_pb2.StockReply(
+            symbol=stock_request.symbol, price=_price(stock_request.symbol)))
+  else:
+    raise abandonment.Abandoned()
+
+
+def _get_last_trade_price_multiple(stock_reply_consumer, control, active):
+  """A stream-request, stream-response test method."""
+  def stock_reply_for_stock_request(stock_request):
+    control.control()
+    if active():
+      return stock_pb2.StockReply(
+          symbol=stock_request.symbol, price=_price(stock_request.symbol))
+    else:
+      raise abandonment.Abandoned()
+
+  class StockRequestConsumer(stream.Consumer):
+
+    def consume(self, stock_request):
+      stock_reply_consumer.consume(stock_reply_for_stock_request(stock_request))
+
+    def terminate(self):
+      control.control()
+      stock_reply_consumer.terminate()
+
+    def consume_and_terminate(self, stock_request):
+      stock_reply_consumer.consume_and_terminate(
+          stock_reply_for_stock_request(stock_request))
+
+  return StockRequestConsumer()
+
+
+def _watch_future_trades(stock_request, stock_reply_consumer, control, active):
+  """A unary-request, stream-response test method."""
+  base_price = _price(stock_request.symbol)
+  for index in range(stock_request.num_trades_to_watch):
+    control.control()
+    if active():
+      stock_reply_consumer.consume(
+          stock_pb2.StockReply(
+              symbol=stock_request.symbol, price=base_price + index))
+    else:
+      raise abandonment.Abandoned()
+  stock_reply_consumer.terminate()
+
+
+def _get_highest_trade_price(stock_reply_callback, control, active):
+  """A stream-request, unary-response test method."""
+
+  class StockRequestConsumer(stream.Consumer):
+    """Keeps an ongoing record of the most valuable symbol yet consumed."""
+
+    def __init__(self):
+      self._symbol = None
+      self._price = None
+
+    def consume(self, stock_request):
+      control.control()
+      if active():
+        if self._price is None:
+          self._symbol = stock_request.symbol
+          self._price = _price(stock_request.symbol)
+        else:
+          candidate_price = _price(stock_request.symbol)
+          if self._price < candidate_price:
+            self._symbol = stock_request.symbol
+            self._price = candidate_price
+
+    def terminate(self):
+      control.control()
+      if active():
+        if self._symbol is None:
+          raise ValueError()
+        else:
+          stock_reply_callback(
+              stock_pb2.StockReply(symbol=self._symbol, price=self._price))
+          self._symbol = None
+          self._price = None
+
+    def consume_and_terminate(self, stock_request):
+      control.control()
+      if active():
+        if self._price is None:
+          stock_reply_callback(
+              stock_pb2.StockReply(
+                  symbol=stock_request.symbol,
+                  price=_price(stock_request.symbol)))
+        else:
+          candidate_price = _price(stock_request.symbol)
+          if self._price < candidate_price:
+            stock_reply_callback(
+                stock_pb2.StockReply(
+                    symbol=stock_request.symbol, price=candidate_price))
+          else:
+            stock_reply_callback(
+                stock_pb2.StockReply(
+                    symbol=self._symbol, price=self._price))
+
+        self._symbol = None
+        self._price = None
+
+  return StockRequestConsumer()
+
+
+class GetLastTradePrice(_service.UnaryUnaryTestMethodImplementation):
+  """GetLastTradePrice for use in tests."""
+
+  def group(self):
+    return _STOCK_GROUP_NAME
+
+  def name(self):
+    return 'GetLastTradePrice'
+
+  def cardinality(self):
+    return cardinality.Cardinality.UNARY_UNARY
+
+  def request_class(self):
+    return stock_pb2.StockRequest
+
+  def response_class(self):
+    return stock_pb2.StockReply
+
+  def serialize_request(self, request):
+    return request.SerializeToString()
+
+  def deserialize_request(self, serialized_request):
+    return stock_pb2.StockRequest.FromString(serialized_request)
+
+  def serialize_response(self, response):
+    return response.SerializeToString()
+
+  def deserialize_response(self, serialized_response):
+    return stock_pb2.StockReply.FromString(serialized_response)
+
+  def service(self, request, response_callback, context, control):
+    _get_last_trade_price(
+        request, response_callback, control, context.is_active)
+
+
+class GetLastTradePriceMessages(_service.UnaryUnaryTestMessages):
+
+  def __init__(self):
+    self._index = 0
+
+  def request(self):
+    symbol = _SYMBOL_FORMAT % self._index
+    self._index += 1
+    return stock_pb2.StockRequest(symbol=symbol)
+
+  def verify(self, request, response, test_case):
+    test_case.assertEqual(request.symbol, response.symbol)
+    test_case.assertEqual(_price(request.symbol), response.price)
+
+
+class GetLastTradePriceMultiple(_service.StreamStreamTestMethodImplementation):
+  """GetLastTradePriceMultiple for use in tests."""
+
+  def group(self):
+    return _STOCK_GROUP_NAME
+
+  def name(self):
+    return 'GetLastTradePriceMultiple'
+
+  def cardinality(self):
+    return cardinality.Cardinality.STREAM_STREAM
+
+  def request_class(self):
+    return stock_pb2.StockRequest
+
+  def response_class(self):
+    return stock_pb2.StockReply
+
+  def serialize_request(self, request):
+    return request.SerializeToString()
+
+  def deserialize_request(self, serialized_request):
+    return stock_pb2.StockRequest.FromString(serialized_request)
+
+  def serialize_response(self, response):
+    return response.SerializeToString()
+
+  def deserialize_response(self, serialized_response):
+    return stock_pb2.StockReply.FromString(serialized_response)
+
+  def service(self, response_consumer, context, control):
+    return _get_last_trade_price_multiple(
+        response_consumer, control, context.is_active)
+
+
+class GetLastTradePriceMultipleMessages(_service.StreamStreamTestMessages):
+  """Pairs of message streams for use with GetLastTradePriceMultiple."""
+
+  def __init__(self):
+    self._index = 0
+
+  def requests(self):
+    base_index = self._index
+    self._index += 1
+    return [
+        stock_pb2.StockRequest(symbol=_SYMBOL_FORMAT % (base_index + index))
+        for index in range(test_constants.STREAM_LENGTH)]
+
+  def verify(self, requests, responses, test_case):
+    test_case.assertEqual(len(requests), len(responses))
+    for stock_request, stock_reply in zip(requests, responses):
+      test_case.assertEqual(stock_request.symbol, stock_reply.symbol)
+      test_case.assertEqual(_price(stock_request.symbol), stock_reply.price)
+
+
+class WatchFutureTrades(_service.UnaryStreamTestMethodImplementation):
+  """WatchFutureTrades for use in tests."""
+
+  def group(self):
+    return _STOCK_GROUP_NAME
+
+  def name(self):
+    return 'WatchFutureTrades'
+
+  def cardinality(self):
+    return cardinality.Cardinality.UNARY_STREAM
+
+  def request_class(self):
+    return stock_pb2.StockRequest
+
+  def response_class(self):
+    return stock_pb2.StockReply
+
+  def serialize_request(self, request):
+    return request.SerializeToString()
+
+  def deserialize_request(self, serialized_request):
+    return stock_pb2.StockRequest.FromString(serialized_request)
+
+  def serialize_response(self, response):
+    return response.SerializeToString()
+
+  def deserialize_response(self, serialized_response):
+    return stock_pb2.StockReply.FromString(serialized_response)
+
+  def service(self, request, response_consumer, context, control):
+    _watch_future_trades(request, response_consumer, control, context.is_active)
+
+
+class WatchFutureTradesMessages(_service.UnaryStreamTestMessages):
+  """Pairs of a single request message and a sequence of response messages."""
+
+  def __init__(self):
+    self._index = 0
+
+  def request(self):
+    symbol = _SYMBOL_FORMAT % self._index
+    self._index += 1
+    return stock_pb2.StockRequest(
+        symbol=symbol, num_trades_to_watch=test_constants.STREAM_LENGTH)
+
+  def verify(self, request, responses, test_case):
+    test_case.assertEqual(test_constants.STREAM_LENGTH, len(responses))
+    base_price = _price(request.symbol)
+    for index, response in enumerate(responses):
+      test_case.assertEqual(base_price + index, response.price)
+
+
+class GetHighestTradePrice(_service.StreamUnaryTestMethodImplementation):
+  """GetHighestTradePrice for use in tests."""
+
+  def group(self):
+    return _STOCK_GROUP_NAME
+
+  def name(self):
+    return 'GetHighestTradePrice'
+
+  def cardinality(self):
+    return cardinality.Cardinality.STREAM_UNARY
+
+  def request_class(self):
+    return stock_pb2.StockRequest
+
+  def response_class(self):
+    return stock_pb2.StockReply
+
+  def serialize_request(self, request):
+    return request.SerializeToString()
+
+  def deserialize_request(self, serialized_request):
+    return stock_pb2.StockRequest.FromString(serialized_request)
+
+  def serialize_response(self, response):
+    return response.SerializeToString()
+
+  def deserialize_response(self, serialized_response):
+    return stock_pb2.StockReply.FromString(serialized_response)
+
+  def service(self, response_callback, context, control):
+    return _get_highest_trade_price(
+        response_callback, control, context.is_active)
+
+
+class GetHighestTradePriceMessages(_service.StreamUnaryTestMessages):
+
+  def requests(self):
+    return [
+        stock_pb2.StockRequest(symbol=_SYMBOL_FORMAT % index)
+        for index in range(test_constants.STREAM_LENGTH)]
+
+  def verify(self, requests, response, test_case):
+    price = None
+    symbol = None
+    for stock_request in requests:
+      current_symbol = stock_request.symbol
+      current_price = _price(current_symbol)
+      if price is None or price < current_price:
+        price = current_price
+        symbol = current_symbol
+    test_case.assertEqual(price, response.price)
+    test_case.assertEqual(symbol, response.symbol)
+
+
+class StockTestService(_service.TestService):
+  """A corpus of test data with one method of each RPC cardinality."""
+
+  def unary_unary_scenarios(self):
+    return {
+        (_STOCK_GROUP_NAME, 'GetLastTradePrice'): (
+            GetLastTradePrice(), [GetLastTradePriceMessages()]),
+    }
+
+  def unary_stream_scenarios(self):
+    return {
+        (_STOCK_GROUP_NAME, 'WatchFutureTrades'): (
+            WatchFutureTrades(), [WatchFutureTradesMessages()]),
+    }
+
+  def stream_unary_scenarios(self):
+    return {
+        (_STOCK_GROUP_NAME, 'GetHighestTradePrice'): (
+            GetHighestTradePrice(), [GetHighestTradePriceMessages()])
+    }
+
+  def stream_stream_scenarios(self):
+    return {
+        (_STOCK_GROUP_NAME, 'GetLastTradePriceMultiple'): (
+            GetLastTradePriceMultiple(), [GetLastTradePriceMultipleMessages()]),
+    }
+
+
+STOCK_TEST_SERVICE = StockTestService()
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/test_cases.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/test_cases.py
new file mode 100644
index 0000000000000000000000000000000000000000..ca623662f7797b91378237b388c638a896c1428b
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/test_cases.py
@@ -0,0 +1,67 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Tools for creating tests of implementations of the Face layer."""
+
+# unittest is referenced from specification in this module.
+import unittest  # pylint: disable=unused-import
+
+# test_interfaces is referenced from specification in this module.
+from grpc_test.framework.interfaces.face import _blocking_invocation_inline_service
+from grpc_test.framework.interfaces.face import _event_invocation_synchronous_event_service
+from grpc_test.framework.interfaces.face import _future_invocation_asynchronous_event_service
+from grpc_test.framework.interfaces.face import _invocation
+from grpc_test.framework.interfaces.face import test_interfaces  # pylint: disable=unused-import
+
+_TEST_CASE_SUPERCLASSES = (
+    _blocking_invocation_inline_service.TestCase,
+    _event_invocation_synchronous_event_service.TestCase,
+    _future_invocation_asynchronous_event_service.TestCase,
+)
+
+
+def test_cases(implementation):
+  """Creates unittest.TestCase classes for a given Face layer implementation.
+
+  Args:
+    implementation: A test_interfaces.Implementation specifying creation and
+      destruction of a given Face layer implementation.
+
+  Returns:
+    A sequence of subclasses of unittest.TestCase defining tests of the
+      specified Face layer implementation.
+  """
+  test_case_classes = []
+  for invoker_constructor in _invocation.invoker_constructors():
+    for super_class in _TEST_CASE_SUPERCLASSES:
+      test_case_classes.append(
+          type(invoker_constructor.name() + super_class.NAME, (super_class,),
+               {'implementation': implementation,
+                'invoker_constructor': invoker_constructor}))
+  return test_case_classes
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/face/test_interfaces.py b/src/python/grpcio_test/grpc_test/framework/interfaces/face/test_interfaces.py
new file mode 100644
index 0000000000000000000000000000000000000000..b2b5c10fa6f733918509cf4bbb8cac0032bb5485
--- /dev/null
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/face/test_interfaces.py
@@ -0,0 +1,229 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+"""Interfaces used in tests of implementations of the Face layer."""
+
+import abc
+
+from grpc.framework.common import cardinality  # pylint: disable=unused-import
+from grpc.framework.interfaces.face import face  # pylint: disable=unused-import
+
+
+class Method(object):
+  """Specifies a method to be used in tests."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def group(self):
+    """Identify the group of the method.
+
+    Returns:
+      The group of the method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def name(self):
+    """Identify the name of the method.
+
+    Returns:
+      The name of the method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def cardinality(self):
+    """Identify the cardinality of the method.
+
+    Returns:
+      A cardinality.Cardinality value describing the streaming semantics of the
+        method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def request_class(self):
+    """Identify the class used for the method's request objects.
+
+    Returns:
+      The class object of the class to which the method's request objects
+        belong.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def response_class(self):
+    """Identify the class used for the method's response objects.
+
+    Returns:
+      The class object of the class to which the method's response objects
+        belong.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def serialize_request(self, request):
+    """Serialize the given request object.
+
+    Args:
+      request: A request object appropriate for this method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def deserialize_request(self, serialized_request):
+    """Synthesize a request object from a given bytestring.
+
+    Args:
+      serialized_request: A bytestring deserializable into a request object
+        appropriate for this method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def serialize_response(self, response):
+    """Serialize the given response object.
+
+    Args:
+      response: A response object appropriate for this method.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def deserialize_response(self, serialized_response):
+    """Synthesize a response object from a given bytestring.
+
+    Args:
+      serialized_response: A bytestring deserializable into a response object
+        appropriate for this method.
+    """
+    raise NotImplementedError()
+
+
+class Implementation(object):
+  """Specifies an implementation of the Face layer."""
+  __metaclass__ = abc.ABCMeta
+
+  @abc.abstractmethod
+  def instantiate(
+      self, methods, method_implementations,
+      multi_method_implementation):
+    """Instantiates the Face layer implementation to be used in a test.
+
+    Args:
+      methods: A sequence of Method objects describing the methods available to
+        be called during the test.
+      method_implementations: A dictionary from group-name pair to
+        face.MethodImplementation object specifying implementation of a method.
+      multi_method_implementation: A face.MultiMethodImplementation or None.
+
+    Returns:
+      A sequence of length three the first element of which is a
+        face.GenericStub, the second element of which is dictionary from groups
+        to face.DynamicStubs affording invocation of the group's methods, and
+        the third element of which is an arbitrary memo object to be kept and
+        passed to destantiate at the conclusion of the test. The returned stubs
+        must be backed by the provided implementations.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def destantiate(self, memo):
+    """Destroys the Face layer implementation under test.
+
+    Args:
+      memo: The object from the third position of the return value of a call to
+        instantiate.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def invocation_metadata(self):
+    """Provides the metadata to be used when invoking a test RPC.
+
+    Returns:
+      An object to use as the supplied-at-invocation-time metadata in a test
+        RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def initial_metadata(self):
+    """Provides the metadata for use as a test RPC's first servicer metadata.
+
+    Returns:
+      An object to use as the from-the-servicer-before-responses metadata in a
+        test RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def terminal_metadata(self):
+    """Provides the metadata for use as a test RPC's second servicer metadata.
+
+    Returns:
+      An object to use as the from-the-servicer-after-all-responses metadata in
+        a test RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def code(self):
+    """Provides the value for use as a test RPC's code.
+
+    Returns:
+      An object to use as the from-the-servicer code in a test RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def details(self):
+    """Provides the value for use as a test RPC's details.
+
+    Returns:
+      An object to use as the from-the-servicer details in a test RPC.
+    """
+    raise NotImplementedError()
+
+  @abc.abstractmethod
+  def metadata_transmitted(self, original_metadata, transmitted_metadata):
+    """Identifies whether or not metadata was properly transmitted.
+
+    Args:
+      original_metadata: A metadata value passed to the Face interface
+        implementation under test.
+      transmitted_metadata: The same metadata value after having been
+        transmitted via an RPC performed by the Face interface implementation
+          under test.
+
+    Returns:
+      Whether or not the metadata was properly transmitted by the Face interface
+        implementation under test.
+    """
+    raise NotImplementedError()
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_cases.py b/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_cases.py
index 1e575d1a9ef4891fedc3f661bd8a2cb64c066d63..ecf49d9cdb54cdefb654687d8bb90ca6ab5b9fb9 100644
--- a/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_cases.py
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_cases.py
@@ -300,7 +300,7 @@ class TransmissionTest(object):
         invocation_operation_id, 0, _TRANSMISSION_GROUP, _TRANSMISSION_METHOD,
         links.Ticket.Subscription.FULL, timeout, 0, invocation_initial_metadata,
         invocation_payload, invocation_terminal_metadata, invocation_code,
-        invocation_message, links.Ticket.Termination.COMPLETION)
+        invocation_message, links.Ticket.Termination.COMPLETION, None)
     self._invocation_link.accept_ticket(original_invocation_ticket)
 
     self._service_mate.block_until_tickets_satisfy(
@@ -317,7 +317,7 @@ class TransmissionTest(object):
         service_operation_id, 0, None, None, links.Ticket.Subscription.FULL,
         timeout, 0, service_initial_metadata, service_payload,
         service_terminal_metadata, service_code, service_message,
-        links.Ticket.Termination.COMPLETION)
+        links.Ticket.Termination.COMPLETION, None)
     self._service_link.accept_ticket(original_service_ticket)
     self._invocation_mate.block_until_tickets_satisfy(terminated)
     self._assert_is_valid_service_sequence(
diff --git a/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_utilities.py b/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_utilities.py
index 6c2e3346aaa4bb4d964c9fc592718c758598f6d2..39c7f2fc6355a4beaaf6e4e96823d046eaded194 100644
--- a/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_utilities.py
+++ b/src/python/grpcio_test/grpc_test/framework/interfaces/links/test_utilities.py
@@ -29,9 +29,42 @@
 
 """State and behavior appropriate for use in tests."""
 
+import logging
 import threading
+import time
 
 from grpc.framework.interfaces.links import links
+from grpc.framework.interfaces.links import utilities
+
+# A more-or-less arbitrary limit on the length of raw data values to be logged.
+_UNCOMFORTABLY_LONG = 48
+
+
+def _safe_for_log_ticket(ticket):
+  """Creates a safe-for-printing-to-the-log ticket for a given ticket.
+
+  Args:
+    ticket: Any links.Ticket.
+
+  Returns:
+    A links.Ticket that is as much as can be equal to the given ticket but
+      possibly features values like the string "<payload of length 972321>" in
+      place of the actual values of the given ticket.
+  """
+  if isinstance(ticket.payload, (basestring,)):
+    payload_length = len(ticket.payload)
+  else:
+    payload_length = -1
+  if payload_length < _UNCOMFORTABLY_LONG:
+    return ticket
+  else:
+    return links.Ticket(
+        ticket.operation_id, ticket.sequence_number,
+        ticket.group, ticket.method, ticket.subscription, ticket.timeout,
+        ticket.allowance, ticket.initial_metadata,
+        '<payload of length {}>'.format(payload_length),
+        ticket.terminal_metadata, ticket.code, ticket.message,
+        ticket.termination, None)
 
 
 class RecordingLink(links.Link):
@@ -64,3 +97,71 @@ class RecordingLink(links.Link):
     """Returns a copy of the list of all tickets received by this Link."""
     with self._condition:
       return tuple(self._tickets)
+
+
+class _Pipe(object):
+  """A conduit that logs all tickets passed through it."""
+
+  def __init__(self, name):
+    self._lock = threading.Lock()
+    self._name = name
+    self._left_mate = utilities.NULL_LINK
+    self._right_mate = utilities.NULL_LINK
+
+  def accept_left_to_right_ticket(self, ticket):
+    with self._lock:
+      logging.warning(
+          '%s: moving left to right through %s: %s', time.time(), self._name,
+          _safe_for_log_ticket(ticket))
+      try:
+        self._right_mate.accept_ticket(ticket)
+      except Exception as e:  # pylint: disable=broad-except
+        logging.exception(e)
+
+  def accept_right_to_left_ticket(self, ticket):
+    with self._lock:
+      logging.warning(
+          '%s: moving right to left through %s: %s', time.time(), self._name,
+          _safe_for_log_ticket(ticket))
+      try:
+        self._left_mate.accept_ticket(ticket)
+      except Exception as e:  # pylint: disable=broad-except
+        logging.exception(e)
+
+  def join_left_mate(self, left_mate):
+    with self._lock:
+      self._left_mate = utilities.NULL_LINK if left_mate is None else left_mate
+
+  def join_right_mate(self, right_mate):
+    with self._lock:
+      self._right_mate = (
+          utilities.NULL_LINK if right_mate is None else right_mate)
+
+
+class _Facade(links.Link):
+
+  def __init__(self, accept, join):
+    self._accept = accept
+    self._join = join
+
+  def accept_ticket(self, ticket):
+    self._accept(ticket)
+
+  def join_link(self, link):
+    self._join(link)
+
+
+def logging_links(name):
+  """Creates a conduit that logs all tickets passed through it.
+
+  Args:
+    name: A name to use for the conduit to identify itself in logging output.
+
+  Returns:
+    Two links.Links, the first of which is the "left" side of the conduit
+      and the second of which is the "right" side of the conduit.
+  """
+  pipe = _Pipe(name)
+  left_facade = _Facade(pipe.accept_left_to_right_ticket, pipe.join_left_mate)
+  right_facade = _Facade(pipe.accept_right_to_left_ticket, pipe.join_right_mate)
+  return left_facade, right_facade
diff --git a/src/python/grpcio_test/setup.py b/src/python/grpcio_test/setup.py
index a6203cae2da26e4dbf266fec2edf30bd5f409487..898ea204acf0140aaf151df6ade4a4076c520637 100644
--- a/src/python/grpcio_test/setup.py
+++ b/src/python/grpcio_test/setup.py
@@ -61,6 +61,7 @@ _SETUP_REQUIRES = (
     'pytest>=2.6',
     'pytest-cov>=2.0',
     'pytest-xdist>=1.11',
+    'pytest-timeout>=0.5',
 )
 
 _INSTALL_REQUIRES = (
diff --git a/src/ruby/.rspec b/src/ruby/.rspec
index cd7c5fb5b2120f488382529ca86d220c985f5662..2320752db4d2460316ac5ebef7ff7ac97c341e96 100755
--- a/src/ruby/.rspec
+++ b/src/ruby/.rspec
@@ -1,4 +1,5 @@
 -I.
+-Ipb
 --require spec_helper
 --format documentation
 --color
diff --git a/src/ruby/.rubocop.yml b/src/ruby/.rubocop.yml
index 47e382afa7032c6ad4e9dd90e98ab3c747302810..312bdca384e538030d18a3f70e3d9645920031ec 100644
--- a/src/ruby/.rubocop.yml
+++ b/src/ruby/.rubocop.yml
@@ -5,6 +5,7 @@ inherit_from: .rubocop_todo.yml
 AllCops:
   Exclude:
     - 'bin/apis/**/*'
-    - 'bin/interop/test/**/*'
     - 'bin/math.rb'
     - 'bin/math_services.rb'
+    - 'pb/grpc/health/v1alpha/*'
+    - 'pb/test/**/*'
diff --git a/src/ruby/README.md b/src/ruby/README.md
index 4b657c0bd4ff49d4c9538cedcc5ddbaf781500cc..f8902e34c5ad65c4d4d9b6a0ca2c4a37bb937de0 100644
--- a/src/ruby/README.md
+++ b/src/ruby/README.md
@@ -12,12 +12,36 @@ PREREQUISITES
 -------------
 
 - Ruby 2.x. The gRPC API uses keyword args.
-- [homebrew][] on Mac OS X, [linuxbrew][] on Linux.  These simplify the installation of the gRPC C core.
+- [homebrew][] on Mac OS X.  These simplify the installation of the gRPC C core.
 
 INSTALLATION
 ---------------
-On Mac OS X, install [homebrew][]. On Linux, install [linuxbrew][].
-Run the following command to install gRPC Ruby.
+
+**Linux (Debian):**
+
+Add [Debian unstable][] to your `sources.list` file. Example:
+
+```sh
+echo "deb http://ftp.us.debian.org/debian unstable main contrib non-free" | \
+sudo tee -a /etc/apt/sources.list
+```
+
+Install the gRPC Debian package
+
+```sh
+sudo apt-get update
+sudo apt-get install libgrpc-dev
+```
+
+Install the gRPC Ruby package
+
+```sh
+gem install grpc
+```
+
+**Mac OS X**
+
+Install [homebrew][]. Run the following command to install gRPC Ruby.
 ```sh
 $ curl -fsSL https://goo.gl/getgrpc | bash -s ruby
 ```
@@ -26,12 +50,6 @@ This will download and run the [gRPC install script][], then install the latest
 BUILD FROM SOURCE
 ---------------------
 - Clone this repository
-- Build the gRPC C core
-E.g, from the root of the gRPC [Git repository](https://github.com/google/grpc)
-```sh
-$ cd ../..
-$ make && sudo make install
-```
 
 - Install Ruby 2.x. Consider doing this with [RVM](http://rvm.io), it's a nice way of controlling
   the exact ruby version that's used.
@@ -77,8 +95,8 @@ Directory structure is the layout for [ruby extensions][]
   GRPC.logger.info("Answer: #{resp.inspect}")
   ```
 [homebrew]:http://brew.sh
-[linuxbrew]:https://github.com/Homebrew/linuxbrew#installation
 [gRPC install script]:https://raw.githubusercontent.com/grpc/homebrew-grpc/master/scripts/install
 [ruby extensions]:http://guides.rubygems.org/gems-with-extensions/
 [rubydoc]: http://www.rubydoc.info/gems/grpc
 [grpc.io]: http://www.grpc.io/docs/installation/ruby.html
+[Debian unstable]:https://www.debian.org/releases/sid/
diff --git a/src/ruby/Rakefile b/src/ruby/Rakefile
index 02af9a84b8e6d2337cecfbd3d15f6cd99d6793a9..cc7832b12d2e26e8c3dd23de637b2a4a6ec0b800 100755
--- a/src/ruby/Rakefile
+++ b/src/ruby/Rakefile
@@ -20,7 +20,8 @@ SPEC_SUITES = [
   { id: :bidi, title: 'bidi tests', dir: %w(spec/generic),
     tag: 'bidi' },
   { id: :server, title: 'rpc server thread tests', dir: %w(spec/generic),
-    tag: 'server' }
+    tag: 'server' },
+  { id: :pb, title: 'protobuf service tests', dir: %w(spec/pb) }
 ]
 namespace :suite do
   SPEC_SUITES.each do |suite|
@@ -50,7 +51,8 @@ task 'suite:wrapper' => [:compile, :rubocop]
 task 'suite:idiomatic' => 'suite:wrapper'
 task 'suite:bidi' => 'suite:wrapper'
 task 'suite:server' => 'suite:wrapper'
+task 'suite:pb' => 'suite:server'
 
 desc 'Compiles the gRPC extension then runs all the tests'
-task all: ['suite:idiomatic', 'suite:bidi', 'suite:server']
+task all: ['suite:idiomatic', 'suite:bidi', 'suite:pb', 'suite:server']
 task default: :all
diff --git a/src/ruby/bin/grpc_ruby_interop_client b/src/ruby/bin/grpc_ruby_interop_client
new file mode 100755
index 0000000000000000000000000000000000000000..e79fd33aa5011146969618b648f7c4a455f0fe5b
--- /dev/null
+++ b/src/ruby/bin/grpc_ruby_interop_client
@@ -0,0 +1,33 @@
+#!/usr/bin/env ruby
+
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Provides a gem binary entry point for the interop client.
+require 'test/client'
diff --git a/src/ruby/bin/grpc_ruby_interop_server b/src/ruby/bin/grpc_ruby_interop_server
new file mode 100755
index 0000000000000000000000000000000000000000..656a5f7c998cc8c7be38407d007a9a02ad65a649
--- /dev/null
+++ b/src/ruby/bin/grpc_ruby_interop_server
@@ -0,0 +1,33 @@
+#!/usr/bin/env ruby
+
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# Provides a gem binary entry point for the interop server
+require 'test/server'
diff --git a/src/ruby/bin/interop/README.md b/src/ruby/bin/interop/README.md
deleted file mode 100644
index 84fc66362032d62738504e5055ca7ea8845500d9..0000000000000000000000000000000000000000
--- a/src/ruby/bin/interop/README.md
+++ /dev/null
@@ -1,8 +0,0 @@
-Interop test protos
-===================
-
-These ruby classes were generated with protoc v3, using grpc's ruby compiler
-plugin.
-
-- As of 2015/01 protoc v3 is available in the
-[google-protobuf](https://github.com/google/protobuf) repo
diff --git a/src/ruby/bin/interop/interop_client.rb b/src/ruby/bin/interop/interop_client.rb
index 78ae217fa5638fc490b35098e82a9b7b8df25ead..239083f37f6e239cdc702ded10bd03a5c54428cb 100755
--- a/src/ruby/bin/interop/interop_client.rb
+++ b/src/ruby/bin/interop/interop_client.rb
@@ -29,6 +29,12 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+# #######################################################################
+# DEPRECATED: The behaviour in this file has been moved to pb/test/client.rb
+#
+# This file remains to support existing tools and scripts that use it.
+# ######################################################################
+#
 # interop_client is a testing tool that accesses a gRPC interop testing
 # server and runs a test on it.
 #
@@ -39,397 +45,7 @@
 #                                    --test_case=<testcase_name>
 
 this_dir = File.expand_path(File.dirname(__FILE__))
-lib_dir = File.join(File.dirname(File.dirname(this_dir)), 'lib')
-$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
-$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
-
-require 'optparse'
-require 'minitest'
-require 'minitest/assertions'
-
-require 'grpc'
-require 'googleauth'
-require 'google/protobuf'
-
-require 'test/cpp/interop/test_services'
-require 'test/cpp/interop/messages'
-require 'test/cpp/interop/empty'
-
-require 'signet/ssl_config'
-
-AUTH_ENV = Google::Auth::CredentialsLoader::ENV_VAR
-
-# loads the certificates used to access the test server securely.
-def load_test_certs
-  this_dir = File.expand_path(File.dirname(__FILE__))
-  data_dir = File.join(File.dirname(File.dirname(this_dir)), 'spec/testdata')
-  files = ['ca.pem', 'server1.key', 'server1.pem']
-  files.map { |f| File.open(File.join(data_dir, f)).read }
-end
-
-# loads the certificates used to access the test server securely.
-def load_prod_cert
-  fail 'could not find a production cert' if ENV['SSL_CERT_FILE'].nil?
-  GRPC.logger.info("loading prod certs from #{ENV['SSL_CERT_FILE']}")
-  File.open(ENV['SSL_CERT_FILE']).read
-end
-
-# creates SSL Credentials from the test certificates.
-def test_creds
-  certs = load_test_certs
-  GRPC::Core::Credentials.new(certs[0])
-end
-
-# creates SSL Credentials from the production certificates.
-def prod_creds
-  cert_text = load_prod_cert
-  GRPC::Core::Credentials.new(cert_text)
-end
-
-# creates the SSL Credentials.
-def ssl_creds(use_test_ca)
-  return test_creds if use_test_ca
-  prod_creds
-end
-
-# creates a test stub that accesses host:port securely.
-def create_stub(opts)
-  address = "#{opts.host}:#{opts.port}"
-  if opts.secure
-    stub_opts = {
-      :creds => ssl_creds(opts.use_test_ca),
-      GRPC::Core::Channel::SSL_TARGET => opts.host_override
-    }
-
-    # Add service account creds if specified
-    wants_creds = %w(all compute_engine_creds service_account_creds)
-    if wants_creds.include?(opts.test_case)
-      unless opts.oauth_scope.nil?
-        auth_creds = Google::Auth.get_application_default(opts.oauth_scope)
-        stub_opts[:update_metadata] = auth_creds.updater_proc
-      end
-    end
-
-    if opts.test_case == 'oauth2_auth_token'
-      auth_creds = Google::Auth.get_application_default(opts.oauth_scope)
-      kw = auth_creds.updater_proc.call({})  # gives as an auth token
-
-      # use a metadata update proc that just adds the auth token.
-      stub_opts[:update_metadata] = proc { |md| md.merge(kw) }
-    end
-
-    if opts.test_case == 'jwt_token_creds'  # don't use a scope
-      auth_creds = Google::Auth.get_application_default
-      stub_opts[:update_metadata] = auth_creds.updater_proc
-    end
-
-    GRPC.logger.info("... connecting securely to #{address}")
-    Grpc::Testing::TestService::Stub.new(address, **stub_opts)
-  else
-    GRPC.logger.info("... connecting insecurely to #{address}")
-    Grpc::Testing::TestService::Stub.new(address)
-  end
-end
-
-# produces a string of null chars (\0) of length l.
-def nulls(l)
-  fail 'requires #{l} to be +ve' if l < 0
-  [].pack('x' * l).force_encoding('utf-8')
-end
-
-# a PingPongPlayer implements the ping pong bidi test.
-class PingPongPlayer
-  include Minitest::Assertions
-  include Grpc::Testing
-  include Grpc::Testing::PayloadType
-  attr_accessor :assertions # required by Minitest::Assertions
-  attr_accessor :queue
-  attr_accessor :canceller_op
-
-  # reqs is the enumerator over the requests
-  def initialize(msg_sizes)
-    @queue = Queue.new
-    @msg_sizes = msg_sizes
-    @assertions = 0  # required by Minitest::Assertions
-    @canceller_op = nil  # used to cancel after the first response
-  end
-
-  def each_item
-    return enum_for(:each_item) unless block_given?
-    req_cls, p_cls = StreamingOutputCallRequest, ResponseParameters  # short
-    count = 0
-    @msg_sizes.each do |m|
-      req_size, resp_size = m
-      req = req_cls.new(payload: Payload.new(body: nulls(req_size)),
-                        response_type: :COMPRESSABLE,
-                        response_parameters: [p_cls.new(size: resp_size)])
-      yield req
-      resp = @queue.pop
-      assert_equal(:COMPRESSABLE, resp.payload.type, 'payload type is wrong')
-      assert_equal(resp_size, resp.payload.body.length,
-                   "payload body #{count} has the wrong length")
-      p "OK: ping_pong #{count}"
-      count += 1
-      unless @canceller_op.nil?
-        canceller_op.cancel
-        break
-      end
-    end
-  end
-end
-
-# defines methods corresponding to each interop test case.
-class NamedTests
-  include Minitest::Assertions
-  include Grpc::Testing
-  include Grpc::Testing::PayloadType
-  attr_accessor :assertions # required by Minitest::Assertions
-
-  def initialize(stub, args)
-    @assertions = 0  # required by Minitest::Assertions
-    @stub = stub
-    @args = args
-  end
-
-  def empty_unary
-    resp = @stub.empty_call(Empty.new)
-    assert resp.is_a?(Empty), 'empty_unary: invalid response'
-    p 'OK: empty_unary'
-  end
-
-  def large_unary
-    perform_large_unary
-    p 'OK: large_unary'
-  end
-
-  def service_account_creds
-    # ignore this test if the oauth options are not set
-    if @args.oauth_scope.nil?
-      p 'NOT RUN: service_account_creds; no service_account settings'
-      return
-    end
-    json_key = File.read(ENV[AUTH_ENV])
-    wanted_email = MultiJson.load(json_key)['client_email']
-    resp = perform_large_unary(fill_username: true,
-                               fill_oauth_scope: true)
-    assert_equal(wanted_email, resp.username,
-                 'service_account_creds: incorrect username')
-    assert(@args.oauth_scope.include?(resp.oauth_scope),
-           'service_account_creds: incorrect oauth_scope')
-    p 'OK: service_account_creds'
-  end
-
-  def jwt_token_creds
-    json_key = File.read(ENV[AUTH_ENV])
-    wanted_email = MultiJson.load(json_key)['client_email']
-    resp = perform_large_unary(fill_username: true)
-    assert_equal(wanted_email, resp.username,
-                 'service_account_creds: incorrect username')
-    p 'OK: jwt_token_creds'
-  end
-
-  def compute_engine_creds
-    resp = perform_large_unary(fill_username: true,
-                               fill_oauth_scope: true)
-    assert_equal(@args.default_service_account, resp.username,
-                 'compute_engine_creds: incorrect username')
-    p 'OK: compute_engine_creds'
-  end
-
-  def oauth2_auth_token
-    resp = perform_large_unary(fill_username: true,
-                               fill_oauth_scope: true)
-    json_key = File.read(ENV[AUTH_ENV])
-    wanted_email = MultiJson.load(json_key)['client_email']
-    assert_equal(wanted_email, resp.username,
-                 "#{__callee__}: incorrect username")
-    assert(@args.oauth_scope.include?(resp.oauth_scope),
-           "#{__callee__}: incorrect oauth_scope")
-    p "OK: #{__callee__}"
-  end
-
-  def per_rpc_creds
-    auth_creds = Google::Auth.get_application_default(@args.oauth_scope)
-    kw = auth_creds.updater_proc.call({})
-    resp = perform_large_unary(fill_username: true,
-                               fill_oauth_scope: true,
-                               **kw)
-    json_key = File.read(ENV[AUTH_ENV])
-    wanted_email = MultiJson.load(json_key)['client_email']
-    assert_equal(wanted_email, resp.username,
-                 "#{__callee__}: incorrect username")
-    assert(@args.oauth_scope.include?(resp.oauth_scope),
-           "#{__callee__}: incorrect oauth_scope")
-    p "OK: #{__callee__}"
-  end
-
-  def client_streaming
-    msg_sizes = [27_182, 8, 1828, 45_904]
-    wanted_aggregate_size = 74_922
-    reqs = msg_sizes.map do |x|
-      req = Payload.new(body: nulls(x))
-      StreamingInputCallRequest.new(payload: req)
-    end
-    resp = @stub.streaming_input_call(reqs)
-    assert_equal(wanted_aggregate_size, resp.aggregated_payload_size,
-                 'client_streaming: aggregate payload size is incorrect')
-    p 'OK: client_streaming'
-  end
-
-  def server_streaming
-    msg_sizes = [31_415, 9, 2653, 58_979]
-    response_spec = msg_sizes.map { |s| ResponseParameters.new(size: s) }
-    req = StreamingOutputCallRequest.new(response_type: :COMPRESSABLE,
-                                         response_parameters: response_spec)
-    resps = @stub.streaming_output_call(req)
-    resps.each_with_index do |r, i|
-      assert i < msg_sizes.length, 'too many responses'
-      assert_equal(:COMPRESSABLE, r.payload.type,
-                   'payload type is wrong')
-      assert_equal(msg_sizes[i], r.payload.body.length,
-                   'payload body #{i} has the wrong length')
-    end
-    p 'OK: server_streaming'
-  end
-
-  def ping_pong
-    msg_sizes = [[27_182, 31_415], [8, 9], [1828, 2653], [45_904, 58_979]]
-    ppp = PingPongPlayer.new(msg_sizes)
-    resps = @stub.full_duplex_call(ppp.each_item)
-    resps.each { |r| ppp.queue.push(r) }
-    p 'OK: ping_pong'
-  end
-
-  def timeout_on_sleeping_server
-    msg_sizes = [[27_182, 31_415]]
-    ppp = PingPongPlayer.new(msg_sizes)
-    resps = @stub.full_duplex_call(ppp.each_item, timeout: 0.001)
-    resps.each { |r| ppp.queue.push(r) }
-    fail 'Should have raised GRPC::BadStatus(DEADLINE_EXCEEDED)'
-  rescue GRPC::BadStatus => e
-    assert_equal(e.code, GRPC::Core::StatusCodes::DEADLINE_EXCEEDED)
-    p "OK: #{__callee__}"
-  end
-
-  def empty_stream
-    ppp = PingPongPlayer.new([])
-    resps = @stub.full_duplex_call(ppp.each_item)
-    count = 0
-    resps.each do
-      |r| ppp.queue.push(r)
-      count += 1
-    end
-    assert_equal(0, count, 'too many responses, expect 0')
-    p 'OK: empty_stream'
-  end
-
-  def cancel_after_begin
-    msg_sizes = [27_182, 8, 1828, 45_904]
-    reqs = msg_sizes.map do |x|
-      req = Payload.new(body: nulls(x))
-      StreamingInputCallRequest.new(payload: req)
-    end
-    op = @stub.streaming_input_call(reqs, return_op: true)
-    op.cancel
-    assert_raises(GRPC::Cancelled) { op.execute }
-    assert(op.cancelled, 'call operation should be CANCELLED')
-    p 'OK: cancel_after_begin'
-  end
-
-  def cancel_after_first_response
-    msg_sizes = [[27_182, 31_415], [8, 9], [1828, 2653], [45_904, 58_979]]
-    ppp = PingPongPlayer.new(msg_sizes)
-    op = @stub.full_duplex_call(ppp.each_item, return_op: true)
-    ppp.canceller_op = op  # causes ppp to cancel after the 1st message
-    assert_raises(GRPC::Cancelled) { op.execute.each { |r| ppp.queue.push(r) } }
-    op.wait
-    assert(op.cancelled, 'call operation was not CANCELLED')
-    p 'OK: cancel_after_first_response'
-  end
-
-  def all
-    all_methods = NamedTests.instance_methods(false).map(&:to_s)
-    all_methods.each do |m|
-      next if m == 'all' || m.start_with?('assert')
-      p "TESTCASE: #{m}"
-      method(m).call
-    end
-  end
-
-  private
-
-  def perform_large_unary(fill_username: false, fill_oauth_scope: false, **kw)
-    req_size, wanted_response_size = 271_828, 314_159
-    payload = Payload.new(type: :COMPRESSABLE, body: nulls(req_size))
-    req = SimpleRequest.new(response_type: :COMPRESSABLE,
-                            response_size: wanted_response_size,
-                            payload: payload)
-    req.fill_username = fill_username
-    req.fill_oauth_scope = fill_oauth_scope
-    resp = @stub.unary_call(req, **kw)
-    assert_equal(:COMPRESSABLE, resp.payload.type,
-                 'large_unary: payload had the wrong type')
-    assert_equal(wanted_response_size, resp.payload.body.length,
-                 'large_unary: payload had the wrong length')
-    assert_equal(nulls(wanted_response_size), resp.payload.body,
-                 'large_unary: payload content is invalid')
-    resp
-  end
-end
-
-# Args is used to hold the command line info.
-Args = Struct.new(:default_service_account, :host, :host_override,
-                  :oauth_scope, :port, :secure, :test_case,
-                  :use_test_ca)
-
-# validates the the command line options, returning them as a Hash.
-def parse_args
-  args = Args.new
-  args.host_override = 'foo.test.google.fr'
-  OptionParser.new do |opts|
-    opts.on('--oauth_scope scope',
-            'Scope for OAuth tokens') { |v| args['oauth_scope'] = v }
-    opts.on('--server_host SERVER_HOST', 'server hostname') do |v|
-      args['host'] = v
-    end
-    opts.on('--default_service_account email_address',
-            'email address of the default service account') do |v|
-      args['default_service_account'] = v
-    end
-    opts.on('--server_host_override HOST_OVERRIDE',
-            'override host via a HTTP header') do |v|
-      args['host_override'] = v
-    end
-    opts.on('--server_port SERVER_PORT', 'server port') { |v| args['port'] = v }
-    # instance_methods(false) gives only the methods defined in that class
-    test_cases = NamedTests.instance_methods(false).map(&:to_s)
-    test_case_list = test_cases.join(',')
-    opts.on('--test_case CODE', test_cases, {}, 'select a test_case',
-            "  (#{test_case_list})") { |v| args['test_case'] = v }
-    opts.on('-s', '--use_tls', 'require a secure connection?') do |v|
-      args['secure'] = v
-    end
-    opts.on('-t', '--use_test_ca',
-            'if secure, use the test certificate?') do |v|
-      args['use_test_ca'] = v
-    end
-  end.parse!
-  _check_args(args)
-end
-
-def _check_args(args)
-  %w(host port test_case).each do |a|
-    if args[a].nil?
-      fail(OptionParser::MissingArgument, "please specify --#{arg}")
-    end
-  end
-  args
-end
-
-def main
-  opts = parse_args
-  stub = create_stub(opts)
-  NamedTests.new(stub, opts).method(opts['test_case']).call
-end
+pb_dir = File.join(File.dirname(File.dirname(this_dir)), 'pb')
+$LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir)
 
-main
+require 'test/client'
diff --git a/src/ruby/bin/interop/interop_server.rb b/src/ruby/bin/interop/interop_server.rb
index 2ba8d2c19ea52d15f26de462bdaa961e4b23c6da..c6b0d00ec6361daa69d0460b267c516b82d7f602 100755
--- a/src/ruby/bin/interop/interop_server.rb
+++ b/src/ruby/bin/interop/interop_server.rb
@@ -29,6 +29,12 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+# #######################################################################
+# DEPRECATED: The behaviour in this file has been moved to pb/test/server.rb
+#
+# This file remains to support existing tools and scripts that use it.
+# ######################################################################
+#
 # interop_server is a Testing app that runs a gRPC interop testing server.
 #
 # It helps validate interoperation b/w gRPC in different environments
@@ -38,157 +44,7 @@
 # Usage: $ path/to/interop_server.rb --port
 
 this_dir = File.expand_path(File.dirname(__FILE__))
-lib_dir = File.join(File.dirname(File.dirname(this_dir)), 'lib')
-$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
-$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
-
-require 'forwardable'
-require 'optparse'
-
-require 'grpc'
-
-require 'test/cpp/interop/test_services'
-require 'test/cpp/interop/messages'
-require 'test/cpp/interop/empty'
-
-# loads the certificates by the test server.
-def load_test_certs
-  this_dir = File.expand_path(File.dirname(__FILE__))
-  data_dir = File.join(File.dirname(File.dirname(this_dir)), 'spec/testdata')
-  files = ['ca.pem', 'server1.key', 'server1.pem']
-  files.map { |f| File.open(File.join(data_dir, f)).read }
-end
-
-# creates a ServerCredentials from the test certificates.
-def test_server_creds
-  certs = load_test_certs
-  GRPC::Core::ServerCredentials.new(nil, certs[1], certs[2])
-end
-
-# produces a string of null chars (\0) of length l.
-def nulls(l)
-  fail 'requires #{l} to be +ve' if l < 0
-  [].pack('x' * l).force_encoding('utf-8')
-end
-
-# A EnumeratorQueue wraps a Queue yielding the items added to it via each_item.
-class EnumeratorQueue
-  extend Forwardable
-  def_delegators :@q, :push
-
-  def initialize(sentinel)
-    @q = Queue.new
-    @sentinel = sentinel
-  end
-
-  def each_item
-    return enum_for(:each_item) unless block_given?
-    loop do
-      r = @q.pop
-      break if r.equal?(@sentinel)
-      fail r if r.is_a? Exception
-      yield r
-    end
-  end
-end
-
-# A runnable implementation of the schema-specified testing service, with each
-# service method implemented as required by the interop testing spec.
-class TestTarget < Grpc::Testing::TestService::Service
-  include Grpc::Testing
-  include Grpc::Testing::PayloadType
-
-  def empty_call(_empty, _call)
-    Empty.new
-  end
-
-  def unary_call(simple_req, _call)
-    req_size = simple_req.response_size
-    SimpleResponse.new(payload: Payload.new(type: :COMPRESSABLE,
-                                            body: nulls(req_size)))
-  end
-
-  def streaming_input_call(call)
-    sizes = call.each_remote_read.map { |x| x.payload.body.length }
-    sum = sizes.inject { |s, x| s + x }
-    StreamingInputCallResponse.new(aggregated_payload_size: sum)
-  end
-
-  def streaming_output_call(req, _call)
-    cls = StreamingOutputCallResponse
-    req.response_parameters.map do |p|
-      cls.new(payload: Payload.new(type: req.response_type,
-                                   body: nulls(p.size)))
-    end
-  end
-
-  def full_duplex_call(reqs)
-    # reqs is a lazy Enumerator of the requests sent by the client.
-    q = EnumeratorQueue.new(self)
-    cls = StreamingOutputCallResponse
-    Thread.new do
-      begin
-        GRPC.logger.info('interop-server: started receiving')
-        reqs.each do |req|
-          resp_size = req.response_parameters[0].size
-          GRPC.logger.info("read a req, response size is #{resp_size}")
-          resp = cls.new(payload: Payload.new(type: req.response_type,
-                                              body: nulls(resp_size)))
-          q.push(resp)
-        end
-        GRPC.logger.info('interop-server: finished receiving')
-        q.push(self)
-      rescue StandardError => e
-        GRPC.logger.info('interop-server: failed')
-        GRPC.logger.warn(e)
-        q.push(e)  # share the exception with the enumerator
-      end
-    end
-    q.each_item
-  end
-
-  def half_duplex_call(reqs)
-    # TODO: update with unique behaviour of the half_duplex_call if that's
-    # ever required by any of the tests.
-    full_duplex_call(reqs)
-  end
-end
-
-# validates the the command line options, returning them as a Hash.
-def parse_options
-  options = {
-    'port' => nil,
-    'secure' => false
-  }
-  OptionParser.new do |opts|
-    opts.banner = 'Usage: --port port'
-    opts.on('--port PORT', 'server port') do |v|
-      options['port'] = v
-    end
-    opts.on('-s', '--use_tls', 'require a secure connection?') do |v|
-      options['secure'] = v
-    end
-  end.parse!
-
-  if options['port'].nil?
-    fail(OptionParser::MissingArgument, 'please specify --port')
-  end
-  options
-end
-
-def main
-  opts = parse_options
-  host = "0.0.0.0:#{opts['port']}"
-  s = GRPC::RpcServer.new
-  if opts['secure']
-    s.add_http2_port(host, test_server_creds)
-    GRPC.logger.info("... running securely on #{host}")
-  else
-    s.add_http2_port(host)
-    GRPC.logger.info("... running insecurely on #{host}")
-  end
-  s.handle(TestTarget)
-  s.run_till_terminated
-end
+pb_dir = File.join(File.dirname(File.dirname(this_dir)), 'pb')
+$LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir)
 
-main
+require 'test/server'
diff --git a/src/ruby/ext/grpc/rb_call.c b/src/ruby/ext/grpc/rb_call.c
index b09d4e2cd954e99bd15edaeec82886a31ca7770c..6b5beb6f5d74294566a5922dae5145ce2afdb16e 100644
--- a/src/ruby/ext/grpc/rb_call.c
+++ b/src/ruby/ext/grpc/rb_call.c
@@ -82,6 +82,10 @@ static ID id_metadata;
  * received by the call and subsequently saved on it. */
 static ID id_status;
 
+/* id_write_flag is name of the attribute used to access the write_flag
+ * saved on the call. */
+static ID id_write_flag;
+
 /* sym_* are the symbol for attributes of grpc_rb_sBatchResult. */
 static VALUE sym_send_message;
 static VALUE sym_send_metadata;
@@ -240,6 +244,30 @@ static VALUE grpc_rb_call_set_metadata(VALUE self, VALUE metadata) {
   return rb_ivar_set(self, id_metadata, metadata);
 }
 
+/*
+  call-seq:
+  write_flag = call.write_flag
+
+  Gets the write_flag value saved the call.  */
+static VALUE grpc_rb_call_get_write_flag(VALUE self) {
+  return rb_ivar_get(self, id_write_flag);
+}
+
+/*
+  call-seq:
+  call.write_flag = write_flag
+
+  Saves the write_flag on the call.  */
+static VALUE grpc_rb_call_set_write_flag(VALUE self, VALUE write_flag) {
+  if (!NIL_P(write_flag) && TYPE(write_flag) != T_FIXNUM) {
+    rb_raise(rb_eTypeError, "bad write_flag: got:<%s> want: <Fixnum>",
+             rb_obj_classname(write_flag));
+    return Qnil;
+  }
+
+  return rb_ivar_set(self, id_write_flag, write_flag);
+}
+
 /* grpc_rb_md_ary_fill_hash_cb is the hash iteration callback used
    to fill grpc_metadata_array.
 
@@ -437,17 +465,19 @@ typedef struct run_batch_stack {
   grpc_status_code recv_status;
   char *recv_status_details;
   size_t recv_status_details_capacity;
+  uint write_flag;
 } run_batch_stack;
 
 /* grpc_run_batch_stack_init ensures the run_batch_stack is properly
  * initialized */
-static void grpc_run_batch_stack_init(run_batch_stack *st) {
+static void grpc_run_batch_stack_init(run_batch_stack *st, uint write_flag) {
   MEMZERO(st, run_batch_stack, 1);
   grpc_metadata_array_init(&st->send_metadata);
   grpc_metadata_array_init(&st->send_trailing_metadata);
   grpc_metadata_array_init(&st->recv_metadata);
   grpc_metadata_array_init(&st->recv_trailing_metadata);
   st->op_num = 0;
+  st->write_flag = write_flag;
 }
 
 /* grpc_run_batch_stack_cleanup ensures the run_batch_stack is properly
@@ -477,6 +507,7 @@ static void grpc_run_batch_stack_fill_ops(run_batch_stack *st, VALUE ops_hash) {
   for (i = 0; i < (size_t)RARRAY_LEN(ops_ary); i++) {
     this_op = rb_ary_entry(ops_ary, i);
     this_value = rb_hash_aref(ops_hash, this_op);
+    st->ops[st->op_num].flags = 0;
     switch (NUM2INT(this_op)) {
       case GRPC_OP_SEND_INITIAL_METADATA:
         /* N.B. later there is no need to explicitly delete the metadata keys
@@ -490,6 +521,7 @@ static void grpc_run_batch_stack_fill_ops(run_batch_stack *st, VALUE ops_hash) {
       case GRPC_OP_SEND_MESSAGE:
         st->ops[st->op_num].data.send_message = grpc_rb_s_to_byte_buffer(
             RSTRING_PTR(this_value), RSTRING_LEN(this_value));
+        st->ops[st->op_num].flags = st->write_flag;
         break;
       case GRPC_OP_SEND_CLOSE_FROM_CLIENT:
         break;
@@ -525,7 +557,7 @@ static void grpc_run_batch_stack_fill_ops(run_batch_stack *st, VALUE ops_hash) {
                  NUM2INT(this_op));
     };
     st->ops[st->op_num].op = (grpc_op_type)NUM2INT(this_op);
-    st->ops[st->op_num].flags = 0;
+    st->ops[st->op_num].reserved = NULL;
     st->op_num++;
   }
 }
@@ -603,6 +635,8 @@ static VALUE grpc_rb_call_run_batch(VALUE self, VALUE cqueue, VALUE tag,
   grpc_event ev;
   grpc_call_error err;
   VALUE result = Qnil;
+  VALUE rb_write_flag = rb_ivar_get(self, id_write_flag);
+  uint write_flag = 0;
   TypedData_Get_Struct(self, grpc_call, &grpc_call_data_type, call);
 
   /* Validate the ops args, adding them to a ruby array */
@@ -610,7 +644,10 @@ static VALUE grpc_rb_call_run_batch(VALUE self, VALUE cqueue, VALUE tag,
     rb_raise(rb_eTypeError, "call#run_batch: ops hash should be a hash");
     return Qnil;
   }
-  grpc_run_batch_stack_init(&st);
+  if (rb_write_flag != Qnil) {
+    write_flag = NUM2UINT(rb_write_flag);
+  }
+  grpc_run_batch_stack_init(&st, write_flag);
   grpc_run_batch_stack_fill_ops(&st, ops_hash);
 
   /* call grpc_call_start_batch, then wait for it to complete using
@@ -637,6 +674,16 @@ static VALUE grpc_rb_call_run_batch(VALUE self, VALUE cqueue, VALUE tag,
   return result;
 }
 
+static void Init_grpc_write_flags() {
+  /* Constants representing the write flags in grpc.h */
+  VALUE grpc_rb_mWriteFlags =
+      rb_define_module_under(grpc_rb_mGrpcCore, "WriteFlags");
+  rb_define_const(grpc_rb_mWriteFlags, "BUFFER_HINT",
+                  UINT2NUM(GRPC_WRITE_BUFFER_HINT));
+  rb_define_const(grpc_rb_mWriteFlags, "NO_COMPRESS",
+                  UINT2NUM(GRPC_WRITE_NO_COMPRESS));
+}
+
 static void Init_grpc_error_codes() {
   /* Constants representing the error codes of grpc_call_error in grpc.h */
   VALUE grpc_rb_mRpcErrors =
@@ -734,10 +781,14 @@ void Init_grpc_call() {
   rb_define_method(grpc_rb_cCall, "status=", grpc_rb_call_set_status, 1);
   rb_define_method(grpc_rb_cCall, "metadata", grpc_rb_call_get_metadata, 0);
   rb_define_method(grpc_rb_cCall, "metadata=", grpc_rb_call_set_metadata, 1);
+  rb_define_method(grpc_rb_cCall, "write_flag", grpc_rb_call_get_write_flag, 0);
+  rb_define_method(grpc_rb_cCall, "write_flag=", grpc_rb_call_set_write_flag,
+                   1);
 
   /* Ids used to support call attributes */
   id_metadata = rb_intern("metadata");
   id_status = rb_intern("status");
+  id_write_flag = rb_intern("write_flag");
 
   /* Ids used by the c wrapping internals. */
   id_cq = rb_intern("__cq");
@@ -765,6 +816,7 @@ void Init_grpc_call() {
 
   Init_grpc_error_codes();
   Init_grpc_op_codes();
+  Init_grpc_write_flags();
 }
 
 /* Gets the call from the ruby object */
diff --git a/src/ruby/grpc.gemspec b/src/ruby/grpc.gemspec
index eb748458b9668cc4e5349791cadd46ef97f03437..20a6206e7ed2eebc0c47cb2b65e14f45bef9bd88 100755
--- a/src/ruby/grpc.gemspec
+++ b/src/ruby/grpc.gemspec
@@ -24,16 +24,16 @@ Gem::Specification.new do |s|
   %w(math noproto).each do |b|
     s.executables += ["#{b}_client.rb", "#{b}_server.rb"]
   end
-  s.require_paths = %w( bin lib )
+  s.executables += %w(grpc_ruby_interop_client grpc_ruby_interop_server)
+  s.require_paths = %w( bin lib pb )
   s.platform      = Gem::Platform::RUBY
 
   s.add_dependency 'google-protobuf', '~> 3.0.0alpha.1.1'
-  s.add_dependency 'googleauth', '~> 0.4'  # reqd for interop tests
-  s.add_dependency 'logging', '~> 2.0'
-  s.add_dependency 'minitest', '~> 5.4'  # reqd for interop tests
+  s.add_dependency 'googleauth', '~> 0.4'
 
-  s.add_development_dependency 'simplecov', '~> 0.9'
   s.add_development_dependency 'bundler', '~> 1.9'
+  s.add_development_dependency 'logging', '~> 2.0'
+  s.add_development_dependency 'simplecov', '~> 0.9'
   s.add_development_dependency 'rake', '~> 10.4'
   s.add_development_dependency 'rake-compiler', '~> 0.9'
   s.add_development_dependency 'rspec', '~> 3.2'
diff --git a/src/ruby/lib/grpc/generic/active_call.rb b/src/ruby/lib/grpc/generic/active_call.rb
index 17da401c6bb139180a5023d9167f16b84079547c..d9cb924735610396ac610d50a4fd451d0d4743a4 100644
--- a/src/ruby/lib/grpc/generic/active_call.rb
+++ b/src/ruby/lib/grpc/generic/active_call.rb
@@ -59,7 +59,7 @@ module GRPC
     include Core::CallOps
     extend Forwardable
     attr_reader(:deadline)
-    def_delegators :@call, :cancel, :metadata
+    def_delegators :@call, :cancel, :metadata, :write_flag, :write_flag=
 
     # client_invoke begins a client invocation.
     #
@@ -484,6 +484,7 @@ module GRPC
     # Operation limits access to an ActiveCall's methods for use as
     # a Operation on the client.
     Operation = view_class(:cancel, :cancelled, :deadline, :execute,
-                           :metadata, :status, :start_call, :wait)
+                           :metadata, :status, :start_call, :wait, :write_flag,
+                           :write_flag=)
   end
 end
diff --git a/src/ruby/lib/grpc/logconfig.rb b/src/ruby/lib/grpc/logconfig.rb
index e9b4aa3c95475305c5741f415504e8fc09b134fd..6b442febcb77a97284c3595ba925242caa275953 100644
--- a/src/ruby/lib/grpc/logconfig.rb
+++ b/src/ruby/lib/grpc/logconfig.rb
@@ -27,17 +27,33 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-require 'logging'
-
 # GRPC contains the General RPC module.
 module GRPC
-  extend Logging.globally
-end
+  # DefaultLogger is a module included in GRPC if no other logging is set up for
+  # it.  See ../spec/spec_helpers an example of where other logging is added.
+  module DefaultLogger
+    def logger
+      LOGGER
+    end
+
+    private
+
+    # NoopLogger implements the methods of Ruby's conventional logging interface
+    # that are actually used internally within gRPC with a noop implementation.
+    class NoopLogger
+      def info(_ignored)
+      end
 
-Logging.logger.root.appenders = Logging.appenders.stdout
-Logging.logger.root.level = :info
+      def debug(_ignored)
+      end
 
-# TODO: provide command-line configuration for logging
-Logging.logger['GRPC'].level = :info
-Logging.logger['GRPC::ActiveCall'].level = :info
-Logging.logger['GRPC::BidiCall'].level = :info
+      def warn(_ignored)
+      end
+    end
+
+    LOGGER = NoopLogger.new
+  end
+
+  # Inject the noop #logger if no module-level logger method has been injected.
+  extend DefaultLogger unless methods.include?(:logger)
+end
diff --git a/src/ruby/pb/README.md b/src/ruby/pb/README.md
new file mode 100644
index 0000000000000000000000000000000000000000..84644e1098896e2c0ae5b9bb22cbc9dab18bf8fa
--- /dev/null
+++ b/src/ruby/pb/README.md
@@ -0,0 +1,42 @@
+Protocol Buffers
+================
+
+This folder contains protocol buffers provided with gRPC ruby, and the generated
+code to them.
+
+PREREQUISITES
+-------------
+
+The code is is generated using the protoc (> 3.0.0.alpha.1) and the
+grpc_ruby_plugin.  These must be installed to regenerate the IDL defined
+classes, but that's not necessary just to use them.
+
+health_check/v1alpha
+--------------------
+
+This package defines the surface of a simple health check service that gRPC
+servers may choose to implement, and provides an implementation for it. To
+re-generate the surface.
+
+```bash
+$ # (from this directory)
+$ protoc -I . grpc/health/v1alpha/health.proto \
+    --grpc_out=. \
+    --ruby_out=. \
+    --plugin=protoc-gen-grpc=`which grpc_ruby_plugin`
+```
+
+test
+----
+
+This package defines the surface of the gRPC interop test service and client
+To re-generate the surface, it's necessary to have checked-out versions of
+the grpc interop test proto, e.g, by having the full gRPC repository. E.g,
+
+```bash
+$ # (from this directory within the grpc repo)
+$ protoc -I../../.. ../../../test/proto/{messages,test,empty}.proto \
+    --grpc_out=. \
+    --ruby_out=. \
+    --plugin=protoc-gen-grpc=`which grpc_ruby_plugin`
+```
diff --git a/src/ruby/pb/grpc/health/checker.rb b/src/ruby/pb/grpc/health/checker.rb
new file mode 100644
index 0000000000000000000000000000000000000000..8c692e74f900bbc78b15685e4df41274f358a8ba
--- /dev/null
+++ b/src/ruby/pb/grpc/health/checker.rb
@@ -0,0 +1,75 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+require 'grpc'
+require 'grpc/health/v1alpha/health_services'
+require 'thread'
+
+module Grpc
+  # Health contains classes and modules that support providing a health check
+  # service.
+  module Health
+    # Checker is implementation of the schema-specified health checking service.
+    class Checker < V1alpha::Health::Service
+      StatusCodes = GRPC::Core::StatusCodes
+      HealthCheckResponse = V1alpha::HealthCheckResponse
+
+      # Initializes the statuses of participating services
+      def initialize
+        @statuses = {}
+        @status_mutex = Mutex.new  # guards access to @statuses
+      end
+
+      # Implements the rpc IDL API method
+      def check(req, _call)
+        status = nil
+        @status_mutex.synchronize do
+          status = @statuses["#{req.host}/#{req.service}"]
+        end
+        fail GRPC::BadStatus, StatusCodes::NOT_FOUND if status.nil?
+        HealthCheckResponse.new(status: status)
+      end
+
+      # Adds the health status for a given host and service.
+      def add_status(host, service, status)
+        @status_mutex.synchronize { @statuses["#{host}/#{service}"] = status }
+      end
+
+      # Clears the status for the given host or service.
+      def clear_status(host, service)
+        @status_mutex.synchronize { @statuses.delete("#{host}/#{service}") }
+      end
+
+      # Clears alls the statuses.
+      def clear_all
+        @status_mutex.synchronize { @statuses = {} }
+      end
+    end
+  end
+end
diff --git a/src/ruby/pb/grpc/health/v1alpha/health.proto b/src/ruby/pb/grpc/health/v1alpha/health.proto
new file mode 100644
index 0000000000000000000000000000000000000000..d31df1e0a7c018837d2ede9fed8e0084d552c4a3
--- /dev/null
+++ b/src/ruby/pb/grpc/health/v1alpha/health.proto
@@ -0,0 +1,50 @@
+// Copyright 2015, Google Inc.
+// All rights reserved.
+//
+// Redistribution and use in source and binary forms, with or without
+// modification, are permitted provided that the following conditions are
+// met:
+//
+//     * Redistributions of source code must retain the above copyright
+// notice, this list of conditions and the following disclaimer.
+//     * Redistributions in binary form must reproduce the above
+// copyright notice, this list of conditions and the following disclaimer
+// in the documentation and/or other materials provided with the
+// distribution.
+//     * Neither the name of Google Inc. nor the names of its
+// contributors may be used to endorse or promote products derived from
+// this software without specific prior written permission.
+//
+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+syntax = "proto3";
+
+package grpc.health.v1alpha;
+
+message HealthCheckRequest {
+  string host = 1;
+  string service = 2;
+}
+
+message HealthCheckResponse {
+  enum ServingStatus {
+    UNKNOWN = 0;
+    SERVING = 1;
+    NOT_SERVING = 2;
+  }
+  ServingStatus status = 1;
+}
+
+service Health {
+  rpc Check(HealthCheckRequest) returns (HealthCheckResponse);
+}
\ No newline at end of file
diff --git a/src/ruby/pb/grpc/health/v1alpha/health.rb b/src/ruby/pb/grpc/health/v1alpha/health.rb
new file mode 100644
index 0000000000000000000000000000000000000000..9c04298ea54394cda76b9953b15bfae08755f8ce
--- /dev/null
+++ b/src/ruby/pb/grpc/health/v1alpha/health.rb
@@ -0,0 +1,29 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: grpc/health/v1alpha/health.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+  add_message "grpc.health.v1alpha.HealthCheckRequest" do
+    optional :host, :string, 1
+    optional :service, :string, 2
+  end
+  add_message "grpc.health.v1alpha.HealthCheckResponse" do
+    optional :status, :enum, 1, "grpc.health.v1alpha.HealthCheckResponse.ServingStatus"
+  end
+  add_enum "grpc.health.v1alpha.HealthCheckResponse.ServingStatus" do
+    value :UNKNOWN, 0
+    value :SERVING, 1
+    value :NOT_SERVING, 2
+  end
+end
+
+module Grpc
+  module Health
+    module V1alpha
+      HealthCheckRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.health.v1alpha.HealthCheckRequest").msgclass
+      HealthCheckResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.health.v1alpha.HealthCheckResponse").msgclass
+      HealthCheckResponse::ServingStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.health.v1alpha.HealthCheckResponse.ServingStatus").enummodule
+    end
+  end
+end
diff --git a/src/ruby/pb/grpc/health/v1alpha/health_services.rb b/src/ruby/pb/grpc/health/v1alpha/health_services.rb
new file mode 100644
index 0000000000000000000000000000000000000000..d5cba2e9ec71c22555c3ebb7c4f739e6bb3c6ed8
--- /dev/null
+++ b/src/ruby/pb/grpc/health/v1alpha/health_services.rb
@@ -0,0 +1,28 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# Source: grpc/health/v1alpha/health.proto for package 'grpc.health.v1alpha'
+
+require 'grpc'
+require 'grpc/health/v1alpha/health'
+
+module Grpc
+  module Health
+    module V1alpha
+      module Health
+
+        # TODO: add proto service documentation here
+        class Service
+
+          include GRPC::GenericService
+
+          self.marshal_class_method = :encode
+          self.unmarshal_class_method = :decode
+          self.service_name = 'grpc.health.v1alpha.Health'
+
+          rpc :Check, HealthCheckRequest, HealthCheckResponse
+        end
+
+        Stub = Service.rpc_stub_class
+      end
+    end
+  end
+end
diff --git a/src/ruby/pb/test/client.rb b/src/ruby/pb/test/client.rb
new file mode 100755
index 0000000000000000000000000000000000000000..164e304b4d799ca4946db9fd840937a9495be466
--- /dev/null
+++ b/src/ruby/pb/test/client.rb
@@ -0,0 +1,453 @@
+#!/usr/bin/env ruby
+
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# client is a testing tool that accesses a gRPC interop testing server and runs
+# a test on it.
+#
+# Helps validate interoperation b/w different gRPC implementations.
+#
+# Usage: $ path/to/client.rb --server_host=<hostname> \
+#                            --server_port=<port> \
+#                            --test_case=<testcase_name>
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(File.dirname(this_dir)), 'lib')
+pb_dir = File.dirname(File.dirname(this_dir))
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'optparse'
+
+require 'grpc'
+require 'googleauth'
+require 'google/protobuf'
+
+require 'test/proto/empty'
+require 'test/proto/messages'
+require 'test/proto/test_services'
+
+require 'signet/ssl_config'
+
+AUTH_ENV = Google::Auth::CredentialsLoader::ENV_VAR
+
+# AssertionError is use to indicate interop test failures.
+class AssertionError < RuntimeError; end
+
+# Fails with AssertionError if the block does evaluate to true
+def assert(msg = 'unknown cause')
+  fail 'No assertion block provided' unless block_given?
+  fail AssertionError, msg unless yield
+end
+
+# loads the certificates used to access the test server securely.
+def load_test_certs
+  this_dir = File.expand_path(File.dirname(__FILE__))
+  data_dir = File.join(File.dirname(File.dirname(this_dir)), 'spec/testdata')
+  files = ['ca.pem', 'server1.key', 'server1.pem']
+  files.map { |f| File.open(File.join(data_dir, f)).read }
+end
+
+# loads the certificates used to access the test server securely.
+def load_prod_cert
+  fail 'could not find a production cert' if ENV['SSL_CERT_FILE'].nil?
+  GRPC.logger.info("loading prod certs from #{ENV['SSL_CERT_FILE']}")
+  File.open(ENV['SSL_CERT_FILE']).read
+end
+
+# creates SSL Credentials from the test certificates.
+def test_creds
+  certs = load_test_certs
+  GRPC::Core::Credentials.new(certs[0])
+end
+
+# creates SSL Credentials from the production certificates.
+def prod_creds
+  cert_text = load_prod_cert
+  GRPC::Core::Credentials.new(cert_text)
+end
+
+# creates the SSL Credentials.
+def ssl_creds(use_test_ca)
+  return test_creds if use_test_ca
+  prod_creds
+end
+
+# creates a test stub that accesses host:port securely.
+def create_stub(opts)
+  address = "#{opts.host}:#{opts.port}"
+  if opts.secure
+    stub_opts = {
+      :creds => ssl_creds(opts.use_test_ca),
+      GRPC::Core::Channel::SSL_TARGET => opts.host_override
+    }
+
+    # Add service account creds if specified
+    wants_creds = %w(all compute_engine_creds service_account_creds)
+    if wants_creds.include?(opts.test_case)
+      unless opts.oauth_scope.nil?
+        auth_creds = Google::Auth.get_application_default(opts.oauth_scope)
+        stub_opts[:update_metadata] = auth_creds.updater_proc
+      end
+    end
+
+    if opts.test_case == 'oauth2_auth_token'
+      auth_creds = Google::Auth.get_application_default(opts.oauth_scope)
+      kw = auth_creds.updater_proc.call({})  # gives as an auth token
+
+      # use a metadata update proc that just adds the auth token.
+      stub_opts[:update_metadata] = proc { |md| md.merge(kw) }
+    end
+
+    if opts.test_case == 'jwt_token_creds'  # don't use a scope
+      auth_creds = Google::Auth.get_application_default
+      stub_opts[:update_metadata] = auth_creds.updater_proc
+    end
+
+    GRPC.logger.info("... connecting securely to #{address}")
+    Grpc::Testing::TestService::Stub.new(address, **stub_opts)
+  else
+    GRPC.logger.info("... connecting insecurely to #{address}")
+    Grpc::Testing::TestService::Stub.new(address)
+  end
+end
+
+# produces a string of null chars (\0) of length l.
+def nulls(l)
+  fail 'requires #{l} to be +ve' if l < 0
+  [].pack('x' * l).force_encoding('utf-8')
+end
+
+# a PingPongPlayer implements the ping pong bidi test.
+class PingPongPlayer
+  include Grpc::Testing
+  include Grpc::Testing::PayloadType
+  attr_accessor :queue
+  attr_accessor :canceller_op
+
+  # reqs is the enumerator over the requests
+  def initialize(msg_sizes)
+    @queue = Queue.new
+    @msg_sizes = msg_sizes
+    @canceller_op = nil  # used to cancel after the first response
+  end
+
+  def each_item
+    return enum_for(:each_item) unless block_given?
+    req_cls, p_cls = StreamingOutputCallRequest, ResponseParameters  # short
+    count = 0
+    @msg_sizes.each do |m|
+      req_size, resp_size = m
+      req = req_cls.new(payload: Payload.new(body: nulls(req_size)),
+                        response_type: :COMPRESSABLE,
+                        response_parameters: [p_cls.new(size: resp_size)])
+      yield req
+      resp = @queue.pop
+      assert('payload type is wrong') { :COMPRESSABLE == resp.payload.type }
+      assert("payload body #{count} has the wrong length") do
+        resp_size == resp.payload.body.length
+      end
+      p "OK: ping_pong #{count}"
+      count += 1
+      unless @canceller_op.nil?
+        canceller_op.cancel
+        break
+      end
+    end
+  end
+end
+
+# defines methods corresponding to each interop test case.
+class NamedTests
+  include Grpc::Testing
+  include Grpc::Testing::PayloadType
+
+  def initialize(stub, args)
+    @stub = stub
+    @args = args
+  end
+
+  def empty_unary
+    resp = @stub.empty_call(Empty.new)
+    assert('empty_unary: invalid response') { resp.is_a?(Empty) }
+    p 'OK: empty_unary'
+  end
+
+  def large_unary
+    perform_large_unary
+    p 'OK: large_unary'
+  end
+
+  def service_account_creds
+    # ignore this test if the oauth options are not set
+    if @args.oauth_scope.nil?
+      p 'NOT RUN: service_account_creds; no service_account settings'
+      return
+    end
+    json_key = File.read(ENV[AUTH_ENV])
+    wanted_email = MultiJson.load(json_key)['client_email']
+    resp = perform_large_unary(fill_username: true,
+                               fill_oauth_scope: true)
+    assert("#{__callee__}: bad username") { wanted_email == resp.username }
+    assert("#{__callee__}: bad oauth scope") do
+      @args.oauth_scope.include?(resp.oauth_scope)
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def jwt_token_creds
+    json_key = File.read(ENV[AUTH_ENV])
+    wanted_email = MultiJson.load(json_key)['client_email']
+    resp = perform_large_unary(fill_username: true)
+    assert("#{__callee__}: bad username") { wanted_email == resp.username }
+    p "OK: #{__callee__}"
+  end
+
+  def compute_engine_creds
+    resp = perform_large_unary(fill_username: true,
+                               fill_oauth_scope: true)
+    assert("#{__callee__}: bad username") do
+      @args.default_service_account == resp.username
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def oauth2_auth_token
+    resp = perform_large_unary(fill_username: true,
+                               fill_oauth_scope: true)
+    json_key = File.read(ENV[AUTH_ENV])
+    wanted_email = MultiJson.load(json_key)['client_email']
+    assert("#{__callee__}: bad username") { wanted_email == resp.username }
+    assert("#{__callee__}: bad oauth scope") do
+      @args.oauth_scope.include?(resp.oauth_scope)
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def per_rpc_creds
+    auth_creds = Google::Auth.get_application_default(@args.oauth_scope)
+    kw = auth_creds.updater_proc.call({})
+    resp = perform_large_unary(fill_username: true,
+                               fill_oauth_scope: true,
+                               **kw)
+    json_key = File.read(ENV[AUTH_ENV])
+    wanted_email = MultiJson.load(json_key)['client_email']
+    assert("#{__callee__}: bad username") { wanted_email == resp.username }
+    assert("#{__callee__}: bad oauth scope") do
+      @args.oauth_scope.include?(resp.oauth_scope)
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def client_streaming
+    msg_sizes = [27_182, 8, 1828, 45_904]
+    wanted_aggregate_size = 74_922
+    reqs = msg_sizes.map do |x|
+      req = Payload.new(body: nulls(x))
+      StreamingInputCallRequest.new(payload: req)
+    end
+    resp = @stub.streaming_input_call(reqs)
+    assert("#{__callee__}: aggregate payload size is incorrect") do
+      wanted_aggregate_size == resp.aggregated_payload_size
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def server_streaming
+    msg_sizes = [31_415, 9, 2653, 58_979]
+    response_spec = msg_sizes.map { |s| ResponseParameters.new(size: s) }
+    req = StreamingOutputCallRequest.new(response_type: :COMPRESSABLE,
+                                         response_parameters: response_spec)
+    resps = @stub.streaming_output_call(req)
+    resps.each_with_index do |r, i|
+      assert("#{__callee__}: too many responses") { i < msg_sizes.length }
+      assert("#{__callee__}: payload body #{i} has the wrong length") do
+        msg_sizes[i] == r.payload.body.length
+      end
+      assert("#{__callee__}: payload type is wrong") do
+        :COMPRESSABLE == r.payload.type
+      end
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def ping_pong
+    msg_sizes = [[27_182, 31_415], [8, 9], [1828, 2653], [45_904, 58_979]]
+    ppp = PingPongPlayer.new(msg_sizes)
+    resps = @stub.full_duplex_call(ppp.each_item)
+    resps.each { |r| ppp.queue.push(r) }
+    p "OK: #{__callee__}"
+  end
+
+  def timeout_on_sleeping_server
+    msg_sizes = [[27_182, 31_415]]
+    ppp = PingPongPlayer.new(msg_sizes)
+    resps = @stub.full_duplex_call(ppp.each_item, timeout: 0.001)
+    resps.each { |r| ppp.queue.push(r) }
+    fail 'Should have raised GRPC::BadStatus(DEADLINE_EXCEEDED)'
+  rescue GRPC::BadStatus => e
+    assert("#{__callee__}: status was wrong") do
+      e.code == GRPC::Core::StatusCodes::DEADLINE_EXCEEDED
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def empty_stream
+    ppp = PingPongPlayer.new([])
+    resps = @stub.full_duplex_call(ppp.each_item)
+    count = 0
+    resps.each do |r|
+      ppp.queue.push(r)
+      count += 1
+    end
+    assert("#{__callee__}: too many responses expected 0") do
+      count == 0
+    end
+    p "OK: #{__callee__}"
+  end
+
+  def cancel_after_begin
+    msg_sizes = [27_182, 8, 1828, 45_904]
+    reqs = msg_sizes.map do |x|
+      req = Payload.new(body: nulls(x))
+      StreamingInputCallRequest.new(payload: req)
+    end
+    op = @stub.streaming_input_call(reqs, return_op: true)
+    op.cancel
+    op.execute
+    fail 'Should have raised GRPC:Cancelled'
+  rescue GRPC::Cancelled
+    assert("#{__callee__}: call operation should be CANCELLED") { op.cancelled }
+    p "OK: #{__callee__}"
+  end
+
+  def cancel_after_first_response
+    msg_sizes = [[27_182, 31_415], [8, 9], [1828, 2653], [45_904, 58_979]]
+    ppp = PingPongPlayer.new(msg_sizes)
+    op = @stub.full_duplex_call(ppp.each_item, return_op: true)
+    ppp.canceller_op = op  # causes ppp to cancel after the 1st message
+    op.execute.each { |r| ppp.queue.push(r) }
+    fail 'Should have raised GRPC:Cancelled'
+  rescue GRPC::Cancelled
+    assert("#{__callee__}: call operation should be CANCELLED") { op.cancelled }
+    op.wait
+    p "OK: #{__callee__}"
+  end
+
+  def all
+    all_methods = NamedTests.instance_methods(false).map(&:to_s)
+    all_methods.each do |m|
+      next if m == 'all' || m.start_with?('assert')
+      p "TESTCASE: #{m}"
+      method(m).call
+    end
+  end
+
+  private
+
+  def perform_large_unary(fill_username: false, fill_oauth_scope: false, **kw)
+    req_size, wanted_response_size = 271_828, 314_159
+    payload = Payload.new(type: :COMPRESSABLE, body: nulls(req_size))
+    req = SimpleRequest.new(response_type: :COMPRESSABLE,
+                            response_size: wanted_response_size,
+                            payload: payload)
+    req.fill_username = fill_username
+    req.fill_oauth_scope = fill_oauth_scope
+    resp = @stub.unary_call(req, **kw)
+    assert('payload type is wrong') do
+      :COMPRESSABLE == resp.payload.type
+    end
+    assert('payload body has the wrong length') do
+      wanted_response_size == resp.payload.body.length
+    end
+    assert('payload body is invalid') do
+      nulls(wanted_response_size) == resp.payload.body
+    end
+    resp
+  end
+end
+
+# Args is used to hold the command line info.
+Args = Struct.new(:default_service_account, :host, :host_override,
+                  :oauth_scope, :port, :secure, :test_case,
+                  :use_test_ca)
+
+# validates the the command line options, returning them as a Hash.
+def parse_args
+  args = Args.new
+  args.host_override = 'foo.test.google.fr'
+  OptionParser.new do |opts|
+    opts.on('--oauth_scope scope',
+            'Scope for OAuth tokens') { |v| args['oauth_scope'] = v }
+    opts.on('--server_host SERVER_HOST', 'server hostname') do |v|
+      args['host'] = v
+    end
+    opts.on('--default_service_account email_address',
+            'email address of the default service account') do |v|
+      args['default_service_account'] = v
+    end
+    opts.on('--server_host_override HOST_OVERRIDE',
+            'override host via a HTTP header') do |v|
+      args['host_override'] = v
+    end
+    opts.on('--server_port SERVER_PORT', 'server port') { |v| args['port'] = v }
+    # instance_methods(false) gives only the methods defined in that class
+    test_cases = NamedTests.instance_methods(false).map(&:to_s)
+    test_case_list = test_cases.join(',')
+    opts.on('--test_case CODE', test_cases, {}, 'select a test_case',
+            "  (#{test_case_list})") { |v| args['test_case'] = v }
+    opts.on('-s', '--use_tls', 'require a secure connection?') do |v|
+      args['secure'] = v
+    end
+    opts.on('-t', '--use_test_ca',
+            'if secure, use the test certificate?') do |v|
+      args['use_test_ca'] = v
+    end
+  end.parse!
+  _check_args(args)
+end
+
+def _check_args(args)
+  %w(host port test_case).each do |a|
+    if args[a].nil?
+      fail(OptionParser::MissingArgument, "please specify --#{a}")
+    end
+  end
+  args
+end
+
+def main
+  opts = parse_args
+  stub = create_stub(opts)
+  NamedTests.new(stub, opts).method(opts['test_case']).call
+end
+
+main
diff --git a/src/ruby/pb/test/proto/empty.rb b/src/ruby/pb/test/proto/empty.rb
new file mode 100644
index 0000000000000000000000000000000000000000..559adcc85e7d6a2827c3150c6277656bc7238c09
--- /dev/null
+++ b/src/ruby/pb/test/proto/empty.rb
@@ -0,0 +1,15 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: test/proto/empty.proto
+
+require 'google/protobuf'
+
+Google::Protobuf::DescriptorPool.generated_pool.build do
+  add_message "grpc.testing.Empty" do
+  end
+end
+
+module Grpc
+  module Testing
+    Empty = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Empty").msgclass
+  end
+end
diff --git a/src/ruby/bin/interop/test/cpp/interop/messages.rb b/src/ruby/pb/test/proto/messages.rb
similarity index 64%
rename from src/ruby/bin/interop/test/cpp/interop/messages.rb
rename to src/ruby/pb/test/proto/messages.rb
index 89c349b4060011b7cc1589a5aad6df8d4ca0d896..9b7f97728599005b364454e7000e9d6c28ed7bcf 100644
--- a/src/ruby/bin/interop/test/cpp/interop/messages.rb
+++ b/src/ruby/pb/test/proto/messages.rb
@@ -1,34 +1,5 @@
-# Copyright 2015, Google Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met:
-#
-#     * Redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer.
-#     * Redistributions in binary form must reproduce the above
-# copyright notice, this list of conditions and the following disclaimer
-# in the documentation and/or other materials provided with the
-# distribution.
-#     * Neither the name of Google Inc. nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
 # Generated by the protocol buffer compiler.  DO NOT EDIT!
-# source: test/cpp/interop/messages.proto
+# source: test/proto/messages.proto
 
 require 'google/protobuf'
 
@@ -37,12 +8,18 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
     optional :type, :enum, 1, "grpc.testing.PayloadType"
     optional :body, :string, 2
   end
+  add_message "grpc.testing.EchoStatus" do
+    optional :code, :int32, 1
+    optional :message, :string, 2
+  end
   add_message "grpc.testing.SimpleRequest" do
     optional :response_type, :enum, 1, "grpc.testing.PayloadType"
     optional :response_size, :int32, 2
     optional :payload, :message, 3, "grpc.testing.Payload"
     optional :fill_username, :bool, 4
     optional :fill_oauth_scope, :bool, 5
+    optional :response_compression, :enum, 6, "grpc.testing.CompressionType"
+    optional :response_status, :message, 7, "grpc.testing.EchoStatus"
   end
   add_message "grpc.testing.SimpleResponse" do
     optional :payload, :message, 1, "grpc.testing.Payload"
@@ -63,20 +40,32 @@ Google::Protobuf::DescriptorPool.generated_pool.build do
     optional :response_type, :enum, 1, "grpc.testing.PayloadType"
     repeated :response_parameters, :message, 2, "grpc.testing.ResponseParameters"
     optional :payload, :message, 3, "grpc.testing.Payload"
+    optional :response_compression, :enum, 6, "grpc.testing.CompressionType"
+    optional :response_status, :message, 7, "grpc.testing.EchoStatus"
   end
   add_message "grpc.testing.StreamingOutputCallResponse" do
     optional :payload, :message, 1, "grpc.testing.Payload"
   end
+  add_message "grpc.testing.ReconnectInfo" do
+    optional :passed, :bool, 1
+    repeated :backoff_ms, :int32, 2
+  end
   add_enum "grpc.testing.PayloadType" do
     value :COMPRESSABLE, 0
     value :UNCOMPRESSABLE, 1
     value :RANDOM, 2
   end
+  add_enum "grpc.testing.CompressionType" do
+    value :NONE, 0
+    value :GZIP, 1
+    value :DEFLATE, 2
+  end
 end
 
 module Grpc
   module Testing
     Payload = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.Payload").msgclass
+    EchoStatus = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.EchoStatus").msgclass
     SimpleRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleRequest").msgclass
     SimpleResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.SimpleResponse").msgclass
     StreamingInputCallRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingInputCallRequest").msgclass
@@ -84,6 +73,8 @@ module Grpc
     ResponseParameters = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ResponseParameters").msgclass
     StreamingOutputCallRequest = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingOutputCallRequest").msgclass
     StreamingOutputCallResponse = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.StreamingOutputCallResponse").msgclass
+    ReconnectInfo = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.ReconnectInfo").msgclass
     PayloadType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.PayloadType").enummodule
+    CompressionType = Google::Protobuf::DescriptorPool.generated_pool.lookup("grpc.testing.CompressionType").enummodule
   end
 end
diff --git a/src/ruby/pb/test/proto/test.rb b/src/ruby/pb/test/proto/test.rb
new file mode 100644
index 0000000000000000000000000000000000000000..100eb6505c95bb0ee8bd03fdb4db19cdf2c707d5
--- /dev/null
+++ b/src/ruby/pb/test/proto/test.rb
@@ -0,0 +1,14 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# source: test/proto/test.proto
+
+require 'google/protobuf'
+
+require 'test/proto/empty'
+require 'test/proto/messages'
+Google::Protobuf::DescriptorPool.generated_pool.build do
+end
+
+module Grpc
+  module Testing
+  end
+end
diff --git a/src/ruby/pb/test/proto/test_services.rb b/src/ruby/pb/test/proto/test_services.rb
new file mode 100644
index 0000000000000000000000000000000000000000..9df9cc5860b027758386054fbc87b7803c8757ba
--- /dev/null
+++ b/src/ruby/pb/test/proto/test_services.rb
@@ -0,0 +1,64 @@
+# Generated by the protocol buffer compiler.  DO NOT EDIT!
+# Source: test/proto/test.proto for package 'grpc.testing'
+
+require 'grpc'
+require 'test/proto/test'
+
+module Grpc
+  module Testing
+    module TestService
+
+      # TODO: add proto service documentation here
+      class Service
+
+        include GRPC::GenericService
+
+        self.marshal_class_method = :encode
+        self.unmarshal_class_method = :decode
+        self.service_name = 'grpc.testing.TestService'
+
+        rpc :EmptyCall, Empty, Empty
+        rpc :UnaryCall, SimpleRequest, SimpleResponse
+        rpc :StreamingOutputCall, StreamingOutputCallRequest, stream(StreamingOutputCallResponse)
+        rpc :StreamingInputCall, stream(StreamingInputCallRequest), StreamingInputCallResponse
+        rpc :FullDuplexCall, stream(StreamingOutputCallRequest), stream(StreamingOutputCallResponse)
+        rpc :HalfDuplexCall, stream(StreamingOutputCallRequest), stream(StreamingOutputCallResponse)
+      end
+
+      Stub = Service.rpc_stub_class
+    end
+    module UnimplementedService
+
+      # TODO: add proto service documentation here
+      class Service
+
+        include GRPC::GenericService
+
+        self.marshal_class_method = :encode
+        self.unmarshal_class_method = :decode
+        self.service_name = 'grpc.testing.UnimplementedService'
+
+        rpc :UnimplementedCall, Empty, Empty
+      end
+
+      Stub = Service.rpc_stub_class
+    end
+    module ReconnectService
+
+      # TODO: add proto service documentation here
+      class Service
+
+        include GRPC::GenericService
+
+        self.marshal_class_method = :encode
+        self.unmarshal_class_method = :decode
+        self.service_name = 'grpc.testing.ReconnectService'
+
+        rpc :Start, Empty, Empty
+        rpc :Stop, Empty, ReconnectInfo
+      end
+
+      Stub = Service.rpc_stub_class
+    end
+  end
+end
diff --git a/src/ruby/pb/test/server.rb b/src/ruby/pb/test/server.rb
new file mode 100755
index 0000000000000000000000000000000000000000..e2e1ecbd6293879ba863b79873300d3406aabb67
--- /dev/null
+++ b/src/ruby/pb/test/server.rb
@@ -0,0 +1,196 @@
+#!/usr/bin/env ruby
+
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+# interop_server is a Testing app that runs a gRPC interop testing server.
+#
+# It helps validate interoperation b/w gRPC in different environments
+#
+# Helps validate interoperation b/w different gRPC implementations.
+#
+# Usage: $ path/to/interop_server.rb --port
+
+this_dir = File.expand_path(File.dirname(__FILE__))
+lib_dir = File.join(File.dirname(File.dirname(this_dir)), 'lib')
+pb_dir = File.dirname(File.dirname(this_dir))
+$LOAD_PATH.unshift(lib_dir) unless $LOAD_PATH.include?(lib_dir)
+$LOAD_PATH.unshift(pb_dir) unless $LOAD_PATH.include?(pb_dir)
+$LOAD_PATH.unshift(this_dir) unless $LOAD_PATH.include?(this_dir)
+
+require 'forwardable'
+require 'optparse'
+
+require 'grpc'
+
+require 'test/proto/empty'
+require 'test/proto/messages'
+require 'test/proto/test_services'
+
+# loads the certificates by the test server.
+def load_test_certs
+  this_dir = File.expand_path(File.dirname(__FILE__))
+  data_dir = File.join(File.dirname(File.dirname(this_dir)), 'spec/testdata')
+  files = ['ca.pem', 'server1.key', 'server1.pem']
+  files.map { |f| File.open(File.join(data_dir, f)).read }
+end
+
+# creates a ServerCredentials from the test certificates.
+def test_server_creds
+  certs = load_test_certs
+  GRPC::Core::ServerCredentials.new(nil, certs[1], certs[2])
+end
+
+# produces a string of null chars (\0) of length l.
+def nulls(l)
+  fail 'requires #{l} to be +ve' if l < 0
+  [].pack('x' * l).force_encoding('utf-8')
+end
+
+# A EnumeratorQueue wraps a Queue yielding the items added to it via each_item.
+class EnumeratorQueue
+  extend Forwardable
+  def_delegators :@q, :push
+
+  def initialize(sentinel)
+    @q = Queue.new
+    @sentinel = sentinel
+  end
+
+  def each_item
+    return enum_for(:each_item) unless block_given?
+    loop do
+      r = @q.pop
+      break if r.equal?(@sentinel)
+      fail r if r.is_a? Exception
+      yield r
+    end
+  end
+end
+
+# A runnable implementation of the schema-specified testing service, with each
+# service method implemented as required by the interop testing spec.
+class TestTarget < Grpc::Testing::TestService::Service
+  include Grpc::Testing
+  include Grpc::Testing::PayloadType
+
+  def empty_call(_empty, _call)
+    Empty.new
+  end
+
+  def unary_call(simple_req, _call)
+    req_size = simple_req.response_size
+    SimpleResponse.new(payload: Payload.new(type: :COMPRESSABLE,
+                                            body: nulls(req_size)))
+  end
+
+  def streaming_input_call(call)
+    sizes = call.each_remote_read.map { |x| x.payload.body.length }
+    sum = sizes.inject { |s, x| s + x }
+    StreamingInputCallResponse.new(aggregated_payload_size: sum)
+  end
+
+  def streaming_output_call(req, _call)
+    cls = StreamingOutputCallResponse
+    req.response_parameters.map do |p|
+      cls.new(payload: Payload.new(type: req.response_type,
+                                   body: nulls(p.size)))
+    end
+  end
+
+  def full_duplex_call(reqs)
+    # reqs is a lazy Enumerator of the requests sent by the client.
+    q = EnumeratorQueue.new(self)
+    cls = StreamingOutputCallResponse
+    Thread.new do
+      begin
+        GRPC.logger.info('interop-server: started receiving')
+        reqs.each do |req|
+          resp_size = req.response_parameters[0].size
+          GRPC.logger.info("read a req, response size is #{resp_size}")
+          resp = cls.new(payload: Payload.new(type: req.response_type,
+                                              body: nulls(resp_size)))
+          q.push(resp)
+        end
+        GRPC.logger.info('interop-server: finished receiving')
+        q.push(self)
+      rescue StandardError => e
+        GRPC.logger.info('interop-server: failed')
+        GRPC.logger.warn(e)
+        q.push(e)  # share the exception with the enumerator
+      end
+    end
+    q.each_item
+  end
+
+  def half_duplex_call(reqs)
+    # TODO: update with unique behaviour of the half_duplex_call if that's
+    # ever required by any of the tests.
+    full_duplex_call(reqs)
+  end
+end
+
+# validates the the command line options, returning them as a Hash.
+def parse_options
+  options = {
+    'port' => nil,
+    'secure' => false
+  }
+  OptionParser.new do |opts|
+    opts.banner = 'Usage: --port port'
+    opts.on('--port PORT', 'server port') do |v|
+      options['port'] = v
+    end
+    opts.on('-s', '--use_tls', 'require a secure connection?') do |v|
+      options['secure'] = v
+    end
+  end.parse!
+
+  if options['port'].nil?
+    fail(OptionParser::MissingArgument, 'please specify --port')
+  end
+  options
+end
+
+def main
+  opts = parse_options
+  host = "0.0.0.0:#{opts['port']}"
+  s = GRPC::RpcServer.new
+  if opts['secure']
+    s.add_http2_port(host, test_server_creds)
+    GRPC.logger.info("... running securely on #{host}")
+  else
+    s.add_http2_port(host)
+    GRPC.logger.info("... running insecurely on #{host}")
+  end
+  s.handle(TestTarget)
+  s.run_till_terminated
+end
+
+main
diff --git a/src/ruby/spec/call_spec.rb b/src/ruby/spec/call_spec.rb
index 3c5d33ffcdfc098dceaa55b788986c87d41bbe3b..dd3c45f7545209db25d7b0ce2beeb446136c8208 100644
--- a/src/ruby/spec/call_spec.rb
+++ b/src/ruby/spec/call_spec.rb
@@ -31,6 +31,14 @@ require 'grpc'
 
 include GRPC::Core::StatusCodes
 
+describe GRPC::Core::WriteFlags do
+  it 'should define the known write flag values' do
+    m = GRPC::Core::WriteFlags
+    expect(m.const_get(:BUFFER_HINT)).to_not be_nil
+    expect(m.const_get(:NO_COMPRESS)).to_not be_nil
+  end
+end
+
 describe GRPC::Core::RpcErrors do
   before(:each) do
     @known_types = {
diff --git a/src/ruby/spec/generic/active_call_spec.rb b/src/ruby/spec/generic/active_call_spec.rb
index 26208b714a41a421261459ff85d158ea7657456d..fcd7bd082f8aa446524d27d876276068e458dc05 100644
--- a/src/ruby/spec/generic/active_call_spec.rb
+++ b/src/ruby/spec/generic/active_call_spec.rb
@@ -35,6 +35,7 @@ describe GRPC::ActiveCall do
   ActiveCall = GRPC::ActiveCall
   Call = GRPC::Core::Call
   CallOps = GRPC::Core::CallOps
+  WriteFlags = GRPC::Core::WriteFlags
 
   before(:each) do
     @pass_through = proc { |x| x }
@@ -129,6 +130,31 @@ describe GRPC::ActiveCall do
                                    @pass_through, deadline)
       expect(server_call.remote_read).to eq('marshalled:' + msg)
     end
+
+    TEST_WRITE_FLAGS = [WriteFlags::BUFFER_HINT, WriteFlags::NO_COMPRESS]
+    TEST_WRITE_FLAGS.each do |f|
+      it "successfully makes calls with write_flag set to #{f}" do
+        call = make_test_call
+        ActiveCall.client_invoke(call, @client_queue)
+        marshal = proc { |x| 'marshalled:' + x }
+        client_call = ActiveCall.new(call, @client_queue, marshal,
+                                     @pass_through, deadline)
+        msg = 'message is a string'
+        client_call.write_flag = f
+        client_call.remote_send(msg)
+
+        # confirm that the message was marshalled
+        recvd_rpc =  @server.request_call(@server_queue, @server_tag, deadline)
+        recvd_call = recvd_rpc.call
+        server_ops = {
+          CallOps::SEND_INITIAL_METADATA => nil
+        }
+        recvd_call.run_batch(@server_queue, @server_tag, deadline, server_ops)
+        server_call = ActiveCall.new(recvd_call, @server_queue, @pass_through,
+                                     @pass_through, deadline)
+        expect(server_call.remote_read).to eq('marshalled:' + msg)
+      end
+    end
   end
 
   describe '#client_invoke' do
@@ -261,7 +287,7 @@ describe GRPC::ActiveCall do
       client_call.writes_done(false)
       server_call = expect_server_to_receive(msg)
       e = client_call.each_remote_read
-      n = 3  # arbitrary value > 1
+      n = 3 # arbitrary value > 1
       n.times do
         server_call.remote_send(reply)
         expect(e.next).to eq(reply)
diff --git a/src/ruby/spec/pb/health/checker_spec.rb b/src/ruby/spec/pb/health/checker_spec.rb
new file mode 100644
index 0000000000000000000000000000000000000000..6999a691058bedd88d914907280ed5896241bef7
--- /dev/null
+++ b/src/ruby/spec/pb/health/checker_spec.rb
@@ -0,0 +1,233 @@
+# Copyright 2015, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+#     * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+#     * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+#     * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+require 'grpc'
+require 'grpc/health/v1alpha/health'
+require 'grpc/health/checker'
+require 'open3'
+
+def can_run_codegen_check
+  system('which grpc_ruby_plugin') && system('which protoc')
+end
+
+describe 'Health protobuf code generation' do
+  context 'the health service file used by grpc/health/checker' do
+    if !can_run_codegen_check
+      skip 'protoc || grpc_ruby_plugin missing, cannot verify health code-gen'
+    else
+      it 'should already be loaded indirectly i.e, used by the other specs' do
+        expect(require('grpc/health/v1alpha/health_services')).to be(false)
+      end
+
+      it 'should have the same content as created by code generation' do
+        root_dir = File.dirname(
+          File.dirname(File.dirname(File.dirname(__FILE__))))
+        pb_dir = File.join(root_dir, 'pb')
+
+        # Get the current content
+        service_path = File.join(pb_dir, 'grpc', 'health', 'v1alpha',
+                                 'health_services.rb')
+        want = nil
+        File.open(service_path) { |f| want = f.read }
+
+        # Regenerate it
+        plugin, = Open3.capture2('which', 'grpc_ruby_plugin')
+        plugin = plugin.strip
+        got = nil
+        Dir.mktmpdir do |tmp_dir|
+          gen_out = File.join(tmp_dir, 'grpc', 'health', 'v1alpha',
+                              'health_services.rb')
+          pid = spawn(
+            'protoc',
+            '-I.',
+            'grpc/health/v1alpha/health.proto',
+            "--grpc_out=#{tmp_dir}",
+            "--plugin=protoc-gen-grpc=#{plugin}",
+            chdir: pb_dir)
+          Process.wait(pid)
+          File.open(gen_out) { |f| got = f.read }
+        end
+        expect(got).to eq(want)
+      end
+    end
+  end
+end
+
+describe Grpc::Health::Checker do
+  StatusCodes = GRPC::Core::StatusCodes
+  ServingStatus = Grpc::Health::V1alpha::HealthCheckResponse::ServingStatus
+  HCResp = Grpc::Health::V1alpha::HealthCheckResponse
+  HCReq = Grpc::Health::V1alpha::HealthCheckRequest
+  success_tests =
+    [
+      {
+        desc: 'neither host or service are specified',
+        host: '',
+        service: ''
+      }, {
+        desc: 'only the host is specified',
+        host: 'test-fake-host',
+        service: ''
+      }, {
+        desc: 'the host and service are specified',
+        host: 'test-fake-host',
+        service: 'fake-service-1'
+      }, {
+        desc: 'only the service is specified',
+        host: '',
+        service: 'fake-service-2'
+      }
+    ]
+
+  context 'initialization' do
+    it 'can be constructed with no args' do
+      expect(subject).to_not be(nil)
+    end
+  end
+
+  context 'method `add_status` and `check`' do
+    success_tests.each do |t|
+      it "should succeed when #{t[:desc]}" do
+        subject.add_status(t[:host], t[:service], ServingStatus::NOT_SERVING)
+        got = subject.check(HCReq.new(host: t[:host], service: t[:service]),
+                            nil)
+        want = HCResp.new(status: ServingStatus::NOT_SERVING)
+        expect(got).to eq(want)
+      end
+    end
+  end
+
+  context 'method `check`' do
+    success_tests.each do |t|
+      it "should fail with NOT_FOUND when #{t[:desc]}" do
+        blk = proc do
+          subject.check(HCReq.new(host: t[:host], service: t[:service]), nil)
+        end
+        expected_msg = /#{StatusCodes::NOT_FOUND}/
+        expect(&blk).to raise_error GRPC::BadStatus, expected_msg
+      end
+    end
+  end
+
+  context 'method `clear_status`' do
+    success_tests.each do |t|
+      it "should fail after clearing status when #{t[:desc]}" do
+        subject.add_status(t[:host], t[:service], ServingStatus::NOT_SERVING)
+        got = subject.check(HCReq.new(host: t[:host], service: t[:service]),
+                            nil)
+        want = HCResp.new(status: ServingStatus::NOT_SERVING)
+        expect(got).to eq(want)
+
+        subject.clear_status(t[:host], t[:service])
+        blk = proc do
+          subject.check(HCReq.new(host: t[:host], service: t[:service]),
+                        nil)
+        end
+        expected_msg = /#{StatusCodes::NOT_FOUND}/
+        expect(&blk).to raise_error GRPC::BadStatus, expected_msg
+      end
+    end
+  end
+
+  context 'method `clear_all`' do
+    it 'should return NOT_FOUND after being invoked' do
+      success_tests.each do |t|
+        subject.add_status(t[:host], t[:service], ServingStatus::NOT_SERVING)
+        got = subject.check(HCReq.new(host: t[:host], service: t[:service]),
+                            nil)
+        want = HCResp.new(status: ServingStatus::NOT_SERVING)
+        expect(got).to eq(want)
+      end
+
+      subject.clear_all
+
+      success_tests.each do |t|
+        blk = proc do
+          subject.check(HCReq.new(host: t[:host], service: t[:service]), nil)
+        end
+        expected_msg = /#{StatusCodes::NOT_FOUND}/
+        expect(&blk).to raise_error GRPC::BadStatus, expected_msg
+      end
+    end
+  end
+
+  describe 'running on RpcServer' do
+    RpcServer = GRPC::RpcServer
+    StatusCodes = GRPC::Core::StatusCodes
+    CheckerStub = Grpc::Health::Checker.rpc_stub_class
+
+    before(:each) do
+      @server_queue = GRPC::Core::CompletionQueue.new
+      server_host = '0.0.0.0:0'
+      @server = GRPC::Core::Server.new(@server_queue, nil)
+      server_port = @server.add_http2_port(server_host)
+      @host = "localhost:#{server_port}"
+      @ch = GRPC::Core::Channel.new(@host, nil)
+      @client_opts = { channel_override: @ch }
+      server_opts = {
+        server_override: @server,
+        completion_queue_override: @server_queue,
+        poll_period: 1
+      }
+      @srv = RpcServer.new(**server_opts)
+    end
+
+    after(:each) do
+      @srv.stop
+    end
+
+    it 'should receive the correct status', server: true do
+      @srv.handle(subject)
+      subject.add_status('', '', ServingStatus::NOT_SERVING)
+      t = Thread.new { @srv.run }
+      @srv.wait_till_running
+
+      stub = CheckerStub.new(@host, **@client_opts)
+      got = stub.check(HCReq.new)
+      want = HCResp.new(status: ServingStatus::NOT_SERVING)
+      expect(got).to eq(want)
+      @srv.stop
+      t.join
+    end
+
+    it 'should fail on unknown services', server: true do
+      @srv.handle(subject)
+      t = Thread.new { @srv.run }
+      @srv.wait_till_running
+      blk = proc do
+        stub = CheckerStub.new(@host, **@client_opts)
+        stub.check(HCReq.new(host: 'unknown', service: 'unknown'))
+      end
+      expected_msg = /#{StatusCodes::NOT_FOUND}/
+      expect(&blk).to raise_error GRPC::BadStatus, expected_msg
+      @srv.stop
+      t.join
+    end
+  end
+end
diff --git a/src/ruby/spec/spec_helper.rb b/src/ruby/spec/spec_helper.rb
index 270d2e97d32b4fa5791f03abc59b5f584a202573..c891c1bf5e45e32eaab4df10c094ef1bdc20bea1 100644
--- a/src/ruby/spec/spec_helper.rb
+++ b/src/ruby/spec/spec_helper.rb
@@ -47,11 +47,23 @@ require 'rspec'
 require 'logging'
 require 'rspec/logging_helper'
 
+# GRPC is the general RPC module
+#
+# Configure its logging for fine-grained log control during test runs
+module GRPC
+  extend Logging.globally
+end
+Logging.logger.root.appenders = Logging.appenders.stdout
+Logging.logger.root.level = :info
+Logging.logger['GRPC'].level = :info
+Logging.logger['GRPC::ActiveCall'].level = :info
+Logging.logger['GRPC::BidiCall'].level = :info
+
 # Configure RSpec to capture log messages for each test. The output from the
 # logs will be stored in the @log_output variable. It is a StringIO instance.
 RSpec.configure do |config|
   include RSpec::LoggingHelper
-  config.capture_log_messages
+  config.capture_log_messages  # comment this out to see logs during test runs
 end
 
 RSpec::Expectations.configuration.warn_about_potential_false_positives = false
diff --git a/templates/Makefile.template b/templates/Makefile.template
index 1b898efbdda287d3c707a60dbb08e4837fff666c..00582a22f8dc3d356bc1a2de5a46dbd20881e5c0 100644
--- a/templates/Makefile.template
+++ b/templates/Makefile.template
@@ -313,11 +313,7 @@ LIBS = m z pthread
 LDFLAGS += -pthread
 endif
 
-ifneq ($(wildcard /usr/src/gtest/src/gtest-all.cc),)
-GTEST_LIB = /usr/src/gtest/src/gtest-all.cc -I/usr/src/gtest
-else
-GTEST_LIB = -lgtest
-endif
+GTEST_LIB = -Ithird_party/googletest/include -Ithird_party/googletest third_party/googletest/src/gtest-all.cc
 GTEST_LIB += -lgflags
 ifeq ($(V),1)
 E = @:
@@ -637,6 +633,8 @@ PROTOBUF_PKG_CONFIG = false
 PC_REQUIRES_GRPCXX =
 PC_LIBS_GRPCXX =
 
+CPPFLAGS := -Ithird_party/googletest/include $(CPPFLAGS)
+
 ifeq ($(HAS_SYSTEM_PROTOBUF),true)
 ifeq ($(HAS_PKG_CONFIG),true)
 PROTOBUF_PKG_CONFIG = true
diff --git a/templates/tools/run_tests/tests.json.template b/templates/tools/run_tests/tests.json.template
index ffbf843235f56226204999f9c7192c93e57c674c..63046731de5a12d07b8e695beed2e79262d8a5f7 100644
--- a/templates/tools/run_tests/tests.json.template
+++ b/templates/tools/run_tests/tests.json.template
@@ -6,6 +6,7 @@ ${json.dumps([{"name": tgt.name,
                "language": tgt.language,
                "platforms": tgt.platforms,
                "ci_platforms": tgt.ci_platforms,
+	       "exclude_configs": tgt.get("exclude_configs", []),
                "flaky": tgt.flaky}
               for tgt in targets
               if tgt.get('run', True) and tgt.build == 'test'],
diff --git a/test/build/protobuf.cc b/test/build/protobuf.cc
index bac33ad7279fb1383198ca04a746bf3c4e43493d..49cd8e8365c5a2a62daf5e9d5caf6fa14dc59546 100644
--- a/test/build/protobuf.cc
+++ b/test/build/protobuf.cc
@@ -38,6 +38,4 @@ bool protobuf_test(const google::protobuf::MethodDescriptor *method) {
   return method->client_streaming() || method->server_streaming();
 }
 
-int main() {
-  return 0;
-}
+int main() { return 0; }
diff --git a/test/core/bad_client/bad_client.c b/test/core/bad_client/bad_client.c
index f7399770dd2c4e8e1c5cc595ce1ec9eabdfc4ce7..24bf5d3625f0274ef87e3ce35c5194ca21639cf1 100644
--- a/test/core/bad_client/bad_client.c
+++ b/test/core/bad_client/bad_client.c
@@ -150,9 +150,8 @@ void grpc_run_bad_client_test(grpc_bad_client_server_side_validator validator,
     grpc_endpoint_destroy(sfd.client);
   }
   grpc_server_shutdown_and_notify(a.server, a.cq, NULL);
-  GPR_ASSERT(grpc_completion_queue_pluck(a.cq, NULL,
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 a.cq, NULL, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(a.server);
   grpc_completion_queue_destroy(a.cq);
diff --git a/test/core/bad_client/tests/connection_prefix.c b/test/core/bad_client/tests/connection_prefix.c
index de62e923f028b7fa76a3069c655655d65241b71d..ec85211605558d91f637f36966202a41d39f058d 100644
--- a/test/core/bad_client/tests/connection_prefix.c
+++ b/test/core/bad_client/tests/connection_prefix.c
@@ -36,9 +36,9 @@
 
 static void verifier(grpc_server *server, grpc_completion_queue *cq) {
   while (grpc_server_has_open_connections(server)) {
-    GPR_ASSERT(
-        grpc_completion_queue_next(cq, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(20),
-                                   NULL).type == GRPC_QUEUE_TIMEOUT);
+    GPR_ASSERT(grpc_completion_queue_next(
+                   cq, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(20), NULL)
+                   .type == GRPC_QUEUE_TIMEOUT);
   }
 }
 
diff --git a/test/core/bad_client/tests/initial_settings_frame.c b/test/core/bad_client/tests/initial_settings_frame.c
index 28e9a39dff1ede54c084709b465b2d1c137c366d..261fecdaf2ff9f829be0f49983d353f12c79ca9f 100644
--- a/test/core/bad_client/tests/initial_settings_frame.c
+++ b/test/core/bad_client/tests/initial_settings_frame.c
@@ -38,9 +38,9 @@
 
 static void verifier(grpc_server *server, grpc_completion_queue *cq) {
   while (grpc_server_has_open_connections(server)) {
-    GPR_ASSERT(
-        grpc_completion_queue_next(cq, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(20),
-                                   NULL).type == GRPC_QUEUE_TIMEOUT);
+    GPR_ASSERT(grpc_completion_queue_next(
+                   cq, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(20), NULL)
+                   .type == GRPC_QUEUE_TIMEOUT);
   }
 }
 
diff --git a/test/core/channel/channel_args_test.c b/test/core/channel/channel_args_test.c
new file mode 100644
index 0000000000000000000000000000000000000000..87f006acdeedafd98269787c8fe7974a4367bc85
--- /dev/null
+++ b/test/core/channel/channel_args_test.c
@@ -0,0 +1,141 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <string.h>
+
+#include <grpc/support/log.h>
+#include <grpc/support/useful.h>
+
+#include "src/core/channel/channel_args.h"
+
+#include "test/core/util/test_config.h"
+
+static void test_create(void) {
+  grpc_arg arg_int;
+  grpc_arg arg_string;
+  grpc_arg to_add[2];
+  grpc_channel_args *ch_args;
+
+  arg_int.key = "int_arg";
+  arg_int.type = GRPC_ARG_INTEGER;
+  arg_int.value.integer = 123;
+
+  arg_string.key = "str key";
+  arg_string.type = GRPC_ARG_STRING;
+  arg_string.value.string = "str value";
+
+  to_add[0] = arg_int;
+  to_add[1] = arg_string;
+  ch_args = grpc_channel_args_copy_and_add(NULL, to_add, 2);
+
+  GPR_ASSERT(ch_args->num_args == 2);
+  GPR_ASSERT(strcmp(ch_args->args[0].key, arg_int.key) == 0);
+  GPR_ASSERT(ch_args->args[0].type == arg_int.type);
+  GPR_ASSERT(ch_args->args[0].value.integer == arg_int.value.integer);
+
+  GPR_ASSERT(strcmp(ch_args->args[1].key, arg_string.key) == 0);
+  GPR_ASSERT(ch_args->args[1].type == arg_string.type);
+  GPR_ASSERT(strcmp(ch_args->args[1].value.string, arg_string.value.string) ==
+             0);
+
+  grpc_channel_args_destroy(ch_args);
+}
+
+static void test_set_compression_algorithm(void) {
+  grpc_channel_args *ch_args;
+
+  ch_args =
+      grpc_channel_args_set_compression_algorithm(NULL, GRPC_COMPRESS_GZIP);
+  GPR_ASSERT(ch_args->num_args == 1);
+  GPR_ASSERT(strcmp(ch_args->args[0].key, GRPC_COMPRESSION_ALGORITHM_ARG) == 0);
+  GPR_ASSERT(ch_args->args[0].type == GRPC_ARG_INTEGER);
+
+  grpc_channel_args_destroy(ch_args);
+}
+
+static void test_compression_algorithm_states(void) {
+  grpc_channel_args *ch_args, *ch_args_wo_gzip, *ch_args_wo_gzip_deflate;
+  int states_bitset;
+  size_t i;
+
+  ch_args = grpc_channel_args_copy_and_add(NULL, NULL, 0);
+  /* by default, all enabled */
+  states_bitset = grpc_channel_args_compression_algorithm_get_states(ch_args);
+
+  for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
+    GPR_ASSERT(GPR_BITGET(states_bitset, i));
+  }
+
+  /* disable gzip and deflate */
+  ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state(
+      &ch_args, GRPC_COMPRESS_GZIP, 0);
+  GPR_ASSERT(ch_args == ch_args_wo_gzip);
+  ch_args_wo_gzip_deflate = grpc_channel_args_compression_algorithm_set_state(
+      &ch_args_wo_gzip, GRPC_COMPRESS_DEFLATE, 0);
+  GPR_ASSERT(ch_args_wo_gzip == ch_args_wo_gzip_deflate);
+
+  states_bitset = grpc_channel_args_compression_algorithm_get_states(
+      ch_args_wo_gzip_deflate);
+  for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
+    if (i == GRPC_COMPRESS_GZIP || i == GRPC_COMPRESS_DEFLATE) {
+      GPR_ASSERT(GPR_BITGET(states_bitset, i) == 0);
+    } else {
+      GPR_ASSERT(GPR_BITGET(states_bitset, i) != 0);
+    }
+  }
+
+  /* re-enabled gzip only */
+  ch_args_wo_gzip = grpc_channel_args_compression_algorithm_set_state(
+      &ch_args_wo_gzip_deflate, GRPC_COMPRESS_GZIP, 1);
+  GPR_ASSERT(ch_args_wo_gzip == ch_args_wo_gzip_deflate);
+
+  states_bitset =
+      grpc_channel_args_compression_algorithm_get_states(ch_args_wo_gzip);
+  for (i = 0; i < GRPC_COMPRESS_ALGORITHMS_COUNT; i++) {
+    if (i == GRPC_COMPRESS_DEFLATE) {
+      GPR_ASSERT(GPR_BITGET(states_bitset, i) == 0);
+    } else {
+      GPR_ASSERT(GPR_BITGET(states_bitset, i) != 0);
+    }
+  }
+
+  grpc_channel_args_destroy(ch_args);
+}
+
+int main(int argc, char **argv) {
+  grpc_test_init(argc, argv);
+  test_create();
+  test_set_compression_algorithm();
+  test_compression_algorithm_states();
+  return 0;
+}
diff --git a/test/core/client_config/uri_parser_test.c b/test/core/client_config/uri_parser_test.c
index 3451ca1e8cc46456a108a7a6c84859dc32af2e2b..d324029c7efc0382a98be0f9f2ee52e9e18ba5e7 100644
--- a/test/core/client_config/uri_parser_test.c
+++ b/test/core/client_config/uri_parser_test.c
@@ -60,7 +60,8 @@ int main(int argc, char **argv) {
   test_succeeds("http://www.google.com:90", "http", "www.google.com:90", "");
   test_succeeds("a192.4-df:foo.coom", "a192.4-df", "", "foo.coom");
   test_succeeds("a+b:foo.coom", "a+b", "", "foo.coom");
-  test_succeeds("zookeeper://127.0.0.1:2181/foo/bar", "zookeeper", "127.0.0.1:2181", "/foo/bar");
+  test_succeeds("zookeeper://127.0.0.1:2181/foo/bar", "zookeeper",
+                "127.0.0.1:2181", "/foo/bar");
   test_fails("xyz");
   test_fails("http://www.google.com?why-are-you-using-queries");
   test_fails("dns:foo.com#fragments-arent-supported-here");
diff --git a/test/cpp/server/fixed_size_thread_pool_test.cc b/test/core/compression/compression_test.c
similarity index 54%
rename from test/cpp/server/fixed_size_thread_pool_test.cc
rename to test/core/compression/compression_test.c
index 442e974fc154d4a824aa37dd02ef3131b27a4912..4df0acae37f900c51ec5596c53ea55d641e42834 100644
--- a/test/cpp/server/fixed_size_thread_pool_test.cc
+++ b/test/core/compression/compression_test.c
@@ -31,47 +31,47 @@
  *
  */
 
-#include <condition_variable>
-#include <functional>
-#include <mutex>
+#include <stdlib.h>
+#include <string.h>
 
-#include <grpc++/fixed_size_thread_pool.h>
-#include <gtest/gtest.h>
+#include <grpc/compression.h>
+#include <grpc/support/log.h>
+#include <grpc/support/useful.h>
 
-namespace grpc {
+#include "test/core/util/test_config.h"
 
-class FixedSizeThreadPoolTest : public ::testing::Test {
- public:
-  FixedSizeThreadPoolTest() : thread_pool_(4) {}
+static void test_compression_algorithm_parse(void) {
+  size_t i;
+  const char* valid_names[] = {"identity", "gzip", "deflate"};
+  const grpc_compression_algorithm valid_algorithms[] = {
+      GRPC_COMPRESS_NONE, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_DEFLATE};
+  const char* invalid_names[] = {"gzip2", "foo", "", "2gzip"};
 
- protected:
-  FixedSizeThreadPool thread_pool_;
-};
+  gpr_log(GPR_DEBUG, "test_compression_algorithm_parse");
 
-void Callback(std::mutex* mu, std::condition_variable* cv, bool* done) {
-  std::unique_lock<std::mutex> lock(*mu);
-  *done = true;
-  cv->notify_all();
-}
-
-TEST_F(FixedSizeThreadPoolTest, Add) {
-  std::mutex mu;
-  std::condition_variable cv;
-  bool done = false;
-  std::function<void()> callback = std::bind(Callback, &mu, &cv, &done);
-  thread_pool_.Add(callback);
+  for (i = 0; i < GPR_ARRAY_SIZE(valid_names); i++) {
+    const char* valid_name = valid_names[i];
+    grpc_compression_algorithm algorithm;
+    int success;
+    success = grpc_compression_algorithm_parse(valid_name, strlen(valid_name),
+                                               &algorithm);
+    GPR_ASSERT(success != 0);
+    GPR_ASSERT(algorithm == valid_algorithms[i]);
+  }
 
-  // Wait for the callback to finish.
-  std::unique_lock<std::mutex> lock(mu);
-  while (!done) {
-    cv.wait(lock);
+  for (i = 0; i < GPR_ARRAY_SIZE(invalid_names); i++) {
+    const char* invalid_name = invalid_names[i];
+    grpc_compression_algorithm algorithm;
+    int success;
+    success = grpc_compression_algorithm_parse(
+        invalid_name, strlen(invalid_name), &algorithm);
+    GPR_ASSERT(success == 0);
+    /* the value of "algorithm" is undefined upon failure */
   }
 }
 
-}  // namespace grpc
-
 int main(int argc, char** argv) {
-  ::testing::InitGoogleTest(&argc, argv);
-  int result = RUN_ALL_TESTS();
-  return result;
+  test_compression_algorithm_parse();
+
+  return 0;
 }
diff --git a/test/core/compression/message_compress_test.c b/test/core/compression/message_compress_test.c
index f5f21cff2598ba41ed16173c162d1b2512c4a186..495841c79f57997926f6edc2db450bdddcbcd8c9 100644
--- a/test/core/compression/message_compress_test.c
+++ b/test/core/compression/message_compress_test.c
@@ -69,8 +69,7 @@ static void assert_passthrough(gpr_slice value,
           "algorithm='%s' uncompressed_split='%s' compressed_split='%s'",
           GPR_SLICE_LENGTH(value), gpr_murmur_hash3(GPR_SLICE_START_PTR(value),
                                                     GPR_SLICE_LENGTH(value), 0),
-          algorithm_name,
-          grpc_slice_split_mode_name(uncompressed_split_mode),
+          algorithm_name, grpc_slice_split_mode_name(uncompressed_split_mode),
           grpc_slice_split_mode_name(compressed_split_mode));
 
   gpr_slice_buffer_init(&input);
diff --git a/test/core/end2end/cq_verifier.c b/test/core/end2end/cq_verifier.c
index a9ba78dfdb3d5010dfe0dba385b22089f7198683..922de268f41f126173b252b0ec8f80507142dc37 100644
--- a/test/core/end2end/cq_verifier.c
+++ b/test/core/end2end/cq_verifier.c
@@ -146,7 +146,7 @@ static int byte_buffer_eq_slice(grpc_byte_buffer *bb, gpr_slice b) {
 
 int byte_buffer_eq_string(grpc_byte_buffer *bb, const char *str) {
   grpc_byte_buffer_reader reader;
-  grpc_byte_buffer* rbb;
+  grpc_byte_buffer *rbb;
   int res;
 
   grpc_byte_buffer_reader_init(&reader, bb);
diff --git a/test/core/end2end/cq_verifier.h b/test/core/end2end/cq_verifier.h
index 1ecd4db5daacc9ac92177ce0da732215ccf8dc28..b3e07c45a58e86f3eab30265ba9782321e24539b 100644
--- a/test/core/end2end/cq_verifier.h
+++ b/test/core/end2end/cq_verifier.h
@@ -60,6 +60,7 @@ void cq_verify_empty(cq_verifier *v);
 void cq_expect_completion(cq_verifier *v, void *tag, int success);
 
 int byte_buffer_eq_string(grpc_byte_buffer *byte_buffer, const char *string);
-int contains_metadata(grpc_metadata_array *array, const char *key, const char *value);
+int contains_metadata(grpc_metadata_array *array, const char *key,
+                      const char *value);
 
-#endif  /* GRPC_TEST_CORE_END2END_CQ_VERIFIER_H */
+#endif /* GRPC_TEST_CORE_END2END_CQ_VERIFIER_H */
diff --git a/test/core/end2end/data/ssl_test_data.h b/test/core/end2end/data/ssl_test_data.h
index 4f4b30ef2114a7a577487969f6634f48aae8aefb..675249dbd514e4f896ce20ca391347165ba385b4 100644
--- a/test/core/end2end/data/ssl_test_data.h
+++ b/test/core/end2end/data/ssl_test_data.h
@@ -38,4 +38,4 @@ extern const char test_root_cert[];
 extern const char test_server1_cert[];
 extern const char test_server1_key[];
 
-#endif  /* GRPC_TEST_CORE_END2END_DATA_SSL_TEST_DATA_H */
+#endif /* GRPC_TEST_CORE_END2END_DATA_SSL_TEST_DATA_H */
diff --git a/test/core/end2end/dualstack_socket_test.c b/test/core/end2end/dualstack_socket_test.c
index 7b7dbc7472cecf30ab1e9395202a1fdb5cb87cba..fcc12952bf9a29931f8a0eb605b33bbdeb6d0d47 100644
--- a/test/core/end2end/dualstack_socket_test.c
+++ b/test/core/end2end/dualstack_socket_test.c
@@ -32,12 +32,16 @@
  */
 
 #include <string.h>
-#include "src/core/iomgr/socket_utils_posix.h"
+
 #include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/host_port.h>
 #include <grpc/support/log.h>
 #include <grpc/support/string_util.h>
+
+#include "src/core/support/string.h"
+#include "src/core/iomgr/socket_utils_posix.h"
+
 #include "test/core/end2end/cq_verifier.h"
 #include "test/core/util/port.h"
 #include "test/core/util/test_config.h"
@@ -57,6 +61,7 @@ static void drain_cq(grpc_completion_queue *cq) {
   } while (ev.type != GRPC_QUEUE_SHUTDOWN);
 }
 
+static void do_nothing(void *ignored) {}
 void test_connect(const char *server_host, const char *client_host, int port,
                   int expect_ok) {
   char *client_hostport;
@@ -109,8 +114,30 @@ void test_connect(const char *server_host, const char *client_host, int port,
 
   /* Create client. */
   if (client_host[0] == 'i') {
-    /* for ipv4:/ipv6: addresses, just concatenate the port */
-    gpr_asprintf(&client_hostport, "%s:%d", client_host, port);
+    /* for ipv4:/ipv6: addresses, concatenate the port to each of the parts */
+    size_t i;
+    gpr_slice uri_slice;
+    gpr_slice_buffer uri_parts;
+    char **hosts_with_port;
+
+    uri_slice =
+        gpr_slice_new((char *)client_host, strlen(client_host), do_nothing);
+    gpr_slice_buffer_init(&uri_parts);
+    gpr_slice_split(uri_slice, ",", &uri_parts);
+    hosts_with_port = gpr_malloc(sizeof(char*) * uri_parts.count);
+    for (i = 0; i < uri_parts.count; i++) {
+      char *uri_part_str = gpr_dump_slice(uri_parts.slices[i], GPR_DUMP_ASCII);
+      gpr_asprintf(&hosts_with_port[i], "%s:%d", uri_part_str, port);
+      gpr_free(uri_part_str);
+    }
+    client_hostport = gpr_strjoin_sep((const char **)hosts_with_port,
+                                      uri_parts.count, ",", NULL);
+    for (i = 0; i < uri_parts.count; i++) {
+      gpr_free(hosts_with_port[i]);
+    }
+    gpr_free(hosts_with_port);
+    gpr_slice_buffer_destroy(&uri_parts);
+    gpr_slice_unref(uri_slice);
   } else {
     gpr_join_host_port(&client_hostport, client_host, port);
   }
@@ -220,9 +247,8 @@ void test_connect(const char *server_host, const char *client_host, int port,
 
   /* Destroy server. */
   grpc_server_shutdown_and_notify(server, cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(server);
   grpc_completion_queue_shutdown(cq);
@@ -261,7 +287,8 @@ int main(int argc, char **argv) {
     test_connect("0.0.0.0", "127.0.0.1", 0, 1);
     test_connect("0.0.0.0", "::ffff:127.0.0.1", 0, 1);
     test_connect("0.0.0.0", "ipv4:127.0.0.1", 0, 1);
-    test_connect("0.0.0.0", "ipv6:[::ffff:127.0.0.1]", 0, 1);
+    test_connect("0.0.0.0", "ipv4:127.0.0.1,127.0.0.2,127.0.0.3", 0, 1);
+    test_connect("0.0.0.0", "ipv6:[::ffff:127.0.0.1],[::ffff:127.0.0.2]", 0, 1);
     test_connect("0.0.0.0", "localhost", 0, 1);
     if (do_ipv6) {
       test_connect("::", "::1", 0, 1);
diff --git a/test/core/end2end/fixtures/chttp2_fake_security.c b/test/core/end2end/fixtures/chttp2_fake_security.c
index 27531ecbc3bac3a54b93e48a51769b3f2bda8e07..a0a67939a2156902cf8bd76f97ab2dd7c93024a2 100644
--- a/test/core/end2end/fixtures/chttp2_fake_security.c
+++ b/test/core/end2end/fixtures/chttp2_fake_security.c
@@ -70,7 +70,7 @@ static void process_auth_failure(void *state, grpc_auth_context *ctx,
                                  grpc_process_auth_metadata_done_cb cb,
                                  void *user_data) {
   GPR_ASSERT(state == NULL);
-  cb(user_data, NULL, 0, 0);
+  cb(user_data, NULL, 0, NULL, 0, GRPC_STATUS_UNAUTHENTICATED, NULL);
 }
 
 static void chttp2_init_client_secure_fullstack(grpc_end2end_test_fixture *f,
diff --git a/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack.c b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack.c
index 491a293764cb2f86de2d8302380f2ea164ff10b7..beae24136cdb33ee7b69827847bcbf07074e7747 100644
--- a/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack.c
+++ b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack.c
@@ -73,7 +73,7 @@ static void process_auth_failure(void *state, grpc_auth_context *ctx,
                                  grpc_process_auth_metadata_done_cb cb,
                                  void *user_data) {
   GPR_ASSERT(state == NULL);
-  cb(user_data, NULL, 0, 0);
+  cb(user_data, NULL, 0, NULL, 0, GRPC_STATUS_UNAUTHENTICATED, NULL);
 }
 
 static void chttp2_init_client_secure_fullstack(grpc_end2end_test_fixture *f,
diff --git a/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_poll.c b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_poll.c
index f2736cc92f93248cc491a063d9c5a84bb856d9e3..c8971be59664ff7afb4f7b84483869797664be0b 100644
--- a/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_poll.c
+++ b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_poll.c
@@ -73,7 +73,7 @@ static void process_auth_failure(void *state, grpc_auth_context *ctx,
                                  grpc_process_auth_metadata_done_cb cb,
                                  void *user_data) {
   GPR_ASSERT(state == NULL);
-  cb(user_data, NULL, 0, 0);
+  cb(user_data, NULL, 0, NULL, 0, GRPC_STATUS_UNAUTHENTICATED, NULL);
 }
 
 static void chttp2_init_client_secure_fullstack(grpc_end2end_test_fixture *f,
diff --git a/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c
index cc0b9dbbdd5f319dc31d582eff9dae69f127d535..a518a7da15b54d7436eb436b6d8433ca7b44943f 100644
--- a/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c
+++ b/test/core/end2end/fixtures/chttp2_simple_ssl_fullstack_with_proxy.c
@@ -101,7 +101,7 @@ static void process_auth_failure(void *state, grpc_auth_context *ctx,
                                  grpc_process_auth_metadata_done_cb cb,
                                  void *user_data) {
   GPR_ASSERT(state == NULL);
-  cb(user_data, NULL, 0, 0);
+  cb(user_data, NULL, 0, NULL, 0, GRPC_STATUS_UNAUTHENTICATED, NULL);
 }
 
 static void chttp2_init_client_secure_fullstack(grpc_end2end_test_fixture *f,
diff --git a/test/core/end2end/fixtures/chttp2_simple_ssl_with_oauth2_fullstack.c b/test/core/end2end/fixtures/chttp2_simple_ssl_with_oauth2_fullstack.c
index 3c35baec6bfd812cb089e3387276f4a7b5d0525d..7f11028cb5a53f42ade18830a3255965bb3ee07f 100644
--- a/test/core/end2end/fixtures/chttp2_simple_ssl_with_oauth2_fullstack.c
+++ b/test/core/end2end/fixtures/chttp2_simple_ssl_with_oauth2_fullstack.c
@@ -55,8 +55,7 @@ typedef struct fullstack_secure_fixture_data {
 } fullstack_secure_fixture_data;
 
 static const grpc_metadata *find_metadata(const grpc_metadata *md,
-                                          size_t md_count,
-                                          const char *key,
+                                          size_t md_count, const char *key,
                                           const char *value) {
   size_t i;
   for (i = 0; i < md_count; i++) {
@@ -80,7 +79,7 @@ static void process_oauth2_success(void *state, grpc_auth_context *ctx,
                                          client_identity);
   GPR_ASSERT(grpc_auth_context_set_peer_identity_property_name(
                  ctx, client_identity_property_name) == 1);
-  cb(user_data, oauth2, 1, 1);
+  cb(user_data, oauth2, 1, NULL, 0, GRPC_STATUS_OK, NULL);
 }
 
 static void process_oauth2_failure(void *state, grpc_auth_context *ctx,
@@ -91,7 +90,7 @@ static void process_oauth2_failure(void *state, grpc_auth_context *ctx,
       find_metadata(md, md_count, "Authorization", oauth2_md);
   GPR_ASSERT(state == NULL);
   GPR_ASSERT(oauth2 != NULL);
-  cb(user_data, oauth2, 1, 0);
+  cb(user_data, oauth2, 1, NULL, 0, GRPC_STATUS_UNAUTHENTICATED, NULL);
 }
 
 static grpc_end2end_test_fixture chttp2_create_fixture_secure_fullstack(
diff --git a/test/core/end2end/fixtures/proxy.c b/test/core/end2end/fixtures/proxy.c
index 798d4e94d45c7515678709ef90a4746d9d715988..0090cf42f21414196ff7f343fe26deae2b0c1cfa 100644
--- a/test/core/end2end/fixtures/proxy.c
+++ b/test/core/end2end/fixtures/proxy.c
@@ -174,12 +174,12 @@ static void on_p2s_recv_initial_metadata(void *arg, int success) {
   if (!pc->proxy->shutdown) {
     op.op = GRPC_OP_SEND_INITIAL_METADATA;
     op.flags = 0;
+    op.reserved = NULL;
     op.data.send_initial_metadata.count = pc->p2s_initial_metadata.count;
     op.data.send_initial_metadata.metadata = pc->p2s_initial_metadata.metadata;
     refpc(pc, "on_c2p_sent_initial_metadata");
-    err = grpc_call_start_batch(pc->c2p, &op, 1,
-                                new_closure(on_c2p_sent_initial_metadata, pc),
-                                NULL);
+    err = grpc_call_start_batch(
+        pc->c2p, &op, 1, new_closure(on_c2p_sent_initial_metadata, pc), NULL);
     GPR_ASSERT(err == GRPC_CALL_OK);
   }
 
@@ -202,6 +202,7 @@ static void on_p2s_sent_message(void *arg, int success) {
   if (!pc->proxy->shutdown && success) {
     op.op = GRPC_OP_RECV_MESSAGE;
     op.flags = 0;
+    op.reserved = NULL;
     op.data.recv_message = &pc->c2p_msg;
     refpc(pc, "on_c2p_recv_msg");
     err = grpc_call_start_batch(pc->c2p, &op, 1,
@@ -226,6 +227,7 @@ static void on_c2p_recv_msg(void *arg, int success) {
     if (pc->c2p_msg != NULL) {
       op.op = GRPC_OP_SEND_MESSAGE;
       op.flags = 0;
+      op.reserved = NULL;
       op.data.send_message = pc->c2p_msg;
       refpc(pc, "on_p2s_sent_message");
       err = grpc_call_start_batch(pc->p2s, &op, 1,
@@ -234,6 +236,7 @@ static void on_c2p_recv_msg(void *arg, int success) {
     } else {
       op.op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
       op.flags = 0;
+      op.reserved = NULL;
       refpc(pc, "on_p2s_sent_close");
       err = grpc_call_start_batch(pc->p2s, &op, 1,
                                   new_closure(on_p2s_sent_close, pc), NULL);
@@ -255,6 +258,7 @@ static void on_c2p_sent_message(void *arg, int success) {
   if (!pc->proxy->shutdown && success) {
     op.op = GRPC_OP_RECV_MESSAGE;
     op.flags = 0;
+    op.reserved = NULL;
     op.data.recv_message = &pc->p2s_msg;
     refpc(pc, "on_p2s_recv_msg");
     err = grpc_call_start_batch(pc->p2s, &op, 1,
@@ -273,6 +277,7 @@ static void on_p2s_recv_msg(void *arg, int success) {
   if (!pc->proxy->shutdown && success && pc->p2s_msg) {
     op.op = GRPC_OP_SEND_MESSAGE;
     op.flags = 0;
+    op.reserved = NULL;
     op.data.send_message = pc->p2s_msg;
     refpc(pc, "on_c2p_sent_message");
     err = grpc_call_start_batch(pc->c2p, &op, 1,
@@ -296,6 +301,7 @@ static void on_p2s_status(void *arg, int success) {
     GPR_ASSERT(success);
     op.op = GRPC_OP_SEND_STATUS_FROM_SERVER;
     op.flags = 0;
+    op.reserved = NULL;
     op.data.send_status_from_server.trailing_metadata_count =
         pc->p2s_trailing_metadata.count;
     op.data.send_status_from_server.trailing_metadata =
@@ -335,22 +341,21 @@ static void on_new_call(void *arg, int success) {
     gpr_ref_init(&pc->refs, 1);
 
     op.flags = 0;
+    op.reserved = NULL;
 
     op.op = GRPC_OP_RECV_INITIAL_METADATA;
     op.data.recv_initial_metadata = &pc->p2s_initial_metadata;
     refpc(pc, "on_p2s_recv_initial_metadata");
-    err = grpc_call_start_batch(pc->p2s, &op, 1,
-                                new_closure(on_p2s_recv_initial_metadata, pc),
-                                NULL);
+    err = grpc_call_start_batch(
+        pc->p2s, &op, 1, new_closure(on_p2s_recv_initial_metadata, pc), NULL);
     GPR_ASSERT(err == GRPC_CALL_OK);
 
     op.op = GRPC_OP_SEND_INITIAL_METADATA;
     op.data.send_initial_metadata.count = pc->c2p_initial_metadata.count;
     op.data.send_initial_metadata.metadata = pc->c2p_initial_metadata.metadata;
     refpc(pc, "on_p2s_sent_initial_metadata");
-    err = grpc_call_start_batch(pc->p2s, &op, 1,
-                                new_closure(on_p2s_sent_initial_metadata, pc),
-                                NULL);
+    err = grpc_call_start_batch(
+        pc->p2s, &op, 1, new_closure(on_p2s_sent_initial_metadata, pc), NULL);
     GPR_ASSERT(err == GRPC_CALL_OK);
 
     op.op = GRPC_OP_RECV_MESSAGE;
@@ -375,15 +380,15 @@ static void on_new_call(void *arg, int success) {
     op.data.recv_status_on_client.status_details_capacity =
         &pc->p2s_status_details_capacity;
     refpc(pc, "on_p2s_status");
-    err = grpc_call_start_batch(pc->p2s, &op, 1,
-                                new_closure(on_p2s_status, pc), NULL);
+    err = grpc_call_start_batch(pc->p2s, &op, 1, new_closure(on_p2s_status, pc),
+                                NULL);
     GPR_ASSERT(err == GRPC_CALL_OK);
 
     op.op = GRPC_OP_RECV_CLOSE_ON_SERVER;
     op.data.recv_close_on_server.cancelled = &pc->c2p_server_cancelled;
     refpc(pc, "on_c2p_closed");
-    err = grpc_call_start_batch(pc->c2p, &op, 1,
-                                new_closure(on_c2p_closed, pc), NULL);
+    err = grpc_call_start_batch(pc->c2p, &op, 1, new_closure(on_c2p_closed, pc),
+                                NULL);
     GPR_ASSERT(err == GRPC_CALL_OK);
 
     request_call(proxy);
diff --git a/test/core/end2end/multiple_server_queues_test.c b/test/core/end2end/multiple_server_queues_test.c
index 2befcd0124fbf63f36120428e0c153583ae4cb18..5e2eaf4ae9492106fe54992f5a0f7954ca4466ab 100644
--- a/test/core/end2end/multiple_server_queues_test.c
+++ b/test/core/end2end/multiple_server_queues_test.c
@@ -49,8 +49,8 @@ int main(int argc, char **argv) {
   grpc_server_register_completion_queue(server, cq2, NULL);
   grpc_server_start(server);
   grpc_server_shutdown_and_notify(server, cq2, NULL);
-  grpc_completion_queue_next(
-      cq2, gpr_inf_future(GPR_CLOCK_REALTIME), NULL); /* cue queue hang */
+  grpc_completion_queue_next(cq2, gpr_inf_future(GPR_CLOCK_REALTIME),
+                             NULL); /* cue queue hang */
   grpc_completion_queue_shutdown(cq1);
   grpc_completion_queue_shutdown(cq2);
   grpc_completion_queue_next(cq1, gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
diff --git a/test/core/end2end/no_server_test.c b/test/core/end2end/no_server_test.c
index 6ae87288f7f833686429f694232d2645f69b0ccf..619627ddd2a62d875606e7b974b6da9b6738bf65 100644
--- a/test/core/end2end/no_server_test.c
+++ b/test/core/end2end/no_server_test.c
@@ -88,8 +88,9 @@ int main(int argc, char **argv) {
   GPR_ASSERT(status == GRPC_STATUS_DEADLINE_EXCEEDED);
 
   grpc_completion_queue_shutdown(cq);
-  while (grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME),
-                                    NULL).type != GRPC_QUEUE_SHUTDOWN)
+  while (
+      grpc_completion_queue_next(cq, gpr_inf_future(GPR_CLOCK_REALTIME), NULL)
+          .type != GRPC_QUEUE_SHUTDOWN)
     ;
   grpc_completion_queue_destroy(cq);
   grpc_call_destroy(call);
diff --git a/test/core/end2end/tests/bad_hostname.c b/test/core/end2end/tests/bad_hostname.c
index 61bbbe4855811e7da19f8804dd100e563aae9ab5..8f28fa1e630c866f448f98f3a166817f50de8077 100644
--- a/test/core/end2end/tests/bad_hostname.c
+++ b/test/core/end2end/tests/bad_hostname.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/cancel_after_accept.c b/test/core/end2end/tests/cancel_after_accept.c
index 37151663484e28fc27fcb36b15b4a38c07254c62..313e0b05bda89ada83dfc43f1aa785f1e40e3b84 100644
--- a/test/core/end2end/tests/cancel_after_accept.c
+++ b/test/core/end2end/tests/cancel_after_accept.c
@@ -76,9 +76,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c b/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c
index ffb267c236ed90d6648f32c78491f7a48a139aa5..2430a6d218fa4567a5c54cb884ba611934cbd3c6 100644
--- a/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c
+++ b/test/core/end2end/tests/cancel_after_accept_and_writes_closed.c
@@ -76,9 +76,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/cancel_after_invoke.c b/test/core/end2end/tests/cancel_after_invoke.c
index 7e984da591f18cd5d3a24aaed920498fefcb1cba..9991ee02f0cd2f2d0a3d45670f29ca5afe6c45cb 100644
--- a/test/core/end2end/tests/cancel_after_invoke.c
+++ b/test/core/end2end/tests/cancel_after_invoke.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/cancel_before_invoke.c b/test/core/end2end/tests/cancel_before_invoke.c
index 06e660268167e1ead2faea219db876eb6c627317..8b582e0c4223c7f7342cea00fd243950eb4beaca 100644
--- a/test/core/end2end/tests/cancel_before_invoke.c
+++ b/test/core/end2end/tests/cancel_before_invoke.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/cancel_in_a_vacuum.c b/test/core/end2end/tests/cancel_in_a_vacuum.c
index f57a44caa4c970329a6e77793e011f34dd5a2f99..6c63d7c0ad97bad7b97bf8a99d0e2e4cd9b3ef8e 100644
--- a/test/core/end2end/tests/cancel_in_a_vacuum.c
+++ b/test/core/end2end/tests/cancel_in_a_vacuum.c
@@ -76,9 +76,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/cancel_test_helpers.h b/test/core/end2end/tests/cancel_test_helpers.h
index 6ea822fa9ab2c5cb1a26572f1d916e5cb1e4a3e6..f8fafae597c433214ca48d38022a10ce758e2cd1 100644
--- a/test/core/end2end/tests/cancel_test_helpers.h
+++ b/test/core/end2end/tests/cancel_test_helpers.h
@@ -42,7 +42,7 @@ typedef struct {
 } cancellation_mode;
 
 static grpc_call_error wait_for_deadline(grpc_call *call, void *reserved) {
-  (void) reserved;
+  (void)reserved;
   return GRPC_CALL_OK;
 }
 
diff --git a/test/core/end2end/tests/census_simple_request.c b/test/core/end2end/tests/census_simple_request.c
index 8f615dec20d45e032859007e1c65aa0ea79a9fe9..36b9e92884427a8c79de823d3bcc0d90b6cfdde0 100644
--- a/test/core/end2end/tests/census_simple_request.c
+++ b/test/core/end2end/tests/census_simple_request.c
@@ -66,9 +66,8 @@ static void *tag(gpr_intptr t) { return (void *)t; }
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -149,9 +148,9 @@ static void test_body(grpc_end2end_test_fixture f) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/channel_connectivity.c b/test/core/end2end/tests/channel_connectivity.c
index ec0417abda28f3d7b34431ad8c0465e25f60bfda..0b7a8a664b146a42536edf14a4296f60b81b3f68 100644
--- a/test/core/end2end/tests/channel_connectivity.c
+++ b/test/core/end2end/tests/channel_connectivity.c
@@ -48,33 +48,38 @@ static void test_connectivity(grpc_end2end_test_config config) {
   config.init_client(&f, NULL);
 
   /* channels should start life in IDLE, and stay there */
-  GPR_ASSERT(grpc_channel_check_connectivity_state(f.client, 0) == GRPC_CHANNEL_IDLE);
+  GPR_ASSERT(grpc_channel_check_connectivity_state(f.client, 0) ==
+             GRPC_CHANNEL_IDLE);
   gpr_sleep_until(GRPC_TIMEOUT_MILLIS_TO_DEADLINE(100));
-  GPR_ASSERT(grpc_channel_check_connectivity_state(f.client, 0) == GRPC_CHANNEL_IDLE);
+  GPR_ASSERT(grpc_channel_check_connectivity_state(f.client, 0) ==
+             GRPC_CHANNEL_IDLE);
 
   /* start watching for a change */
-  grpc_channel_watch_connectivity_state(
-  	f.client, GRPC_CHANNEL_IDLE, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3), f.cq, tag(1));
+  grpc_channel_watch_connectivity_state(f.client, GRPC_CHANNEL_IDLE,
+                                        GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3),
+                                        f.cq, tag(1));
   /* nothing should happen */
   cq_verify_empty(cqv);
 
   /* check that we're still in idle, and start connecting */
-  GPR_ASSERT(grpc_channel_check_connectivity_state(f.client, 1) == GRPC_CHANNEL_IDLE);
+  GPR_ASSERT(grpc_channel_check_connectivity_state(f.client, 1) ==
+             GRPC_CHANNEL_IDLE);
 
   /* and now the watch should trigger */
   cq_expect_completion(cqv, tag(1), 1);
   cq_verify(cqv);
   state = grpc_channel_check_connectivity_state(f.client, 0);
-  GPR_ASSERT(state == GRPC_CHANNEL_TRANSIENT_FAILURE || 
+  GPR_ASSERT(state == GRPC_CHANNEL_TRANSIENT_FAILURE ||
              state == GRPC_CHANNEL_CONNECTING);
 
   /* quickly followed by a transition to TRANSIENT_FAILURE */
-  grpc_channel_watch_connectivity_state(
-  	f.client, GRPC_CHANNEL_CONNECTING, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3), f.cq, tag(2));
+  grpc_channel_watch_connectivity_state(f.client, GRPC_CHANNEL_CONNECTING,
+                                        GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3),
+                                        f.cq, tag(2));
   cq_expect_completion(cqv, tag(2), 1);
   cq_verify(cqv);
   state = grpc_channel_check_connectivity_state(f.client, 0);
-  GPR_ASSERT(state == GRPC_CHANNEL_TRANSIENT_FAILURE || 
+  GPR_ASSERT(state == GRPC_CHANNEL_TRANSIENT_FAILURE ||
              state == GRPC_CHANNEL_CONNECTING);
 
   gpr_log(GPR_DEBUG, "*** STARTING SERVER ***");
@@ -87,13 +92,13 @@ static void test_connectivity(grpc_end2end_test_config config) {
   /* we'll go through some set of transitions (some might be missed), until
      READY is reached */
   while (state != GRPC_CHANNEL_READY) {
-  	grpc_channel_watch_connectivity_state(
-  		f.client, state, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3), f.cq, tag(3));
-  	cq_expect_completion(cqv, tag(3), 1);
+    grpc_channel_watch_connectivity_state(
+        f.client, state, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3), f.cq, tag(3));
+    cq_expect_completion(cqv, tag(3), 1);
     cq_verify(cqv);
     state = grpc_channel_check_connectivity_state(f.client, 0);
-  	GPR_ASSERT(state == GRPC_CHANNEL_READY || 
-               state == GRPC_CHANNEL_CONNECTING || 
+    GPR_ASSERT(state == GRPC_CHANNEL_READY ||
+               state == GRPC_CHANNEL_CONNECTING ||
                state == GRPC_CHANNEL_TRANSIENT_FAILURE);
   }
 
@@ -101,8 +106,9 @@ static void test_connectivity(grpc_end2end_test_config config) {
   /* we should go immediately to TRANSIENT_FAILURE */
   gpr_log(GPR_DEBUG, "*** SHUTTING DOWN SERVER ***");
 
-  grpc_channel_watch_connectivity_state(
-  	f.client, GRPC_CHANNEL_READY, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3), f.cq, tag(4));
+  grpc_channel_watch_connectivity_state(f.client, GRPC_CHANNEL_READY,
+                                        GRPC_TIMEOUT_SECONDS_TO_DEADLINE(3),
+                                        f.cq, tag(4));
 
   grpc_server_shutdown_and_notify(f.server, f.cq, tag(0xdead));
 
@@ -110,7 +116,7 @@ static void test_connectivity(grpc_end2end_test_config config) {
   cq_expect_completion(cqv, tag(0xdead), 1);
   cq_verify(cqv);
   state = grpc_channel_check_connectivity_state(f.client, 0);
-  GPR_ASSERT(state == GRPC_CHANNEL_TRANSIENT_FAILURE || 
+  GPR_ASSERT(state == GRPC_CHANNEL_TRANSIENT_FAILURE ||
              state == GRPC_CHANNEL_CONNECTING);
 
   /* cleanup server */
diff --git a/test/core/end2end/tests/default_host.c b/test/core/end2end/tests/default_host.c
index 5cbf26b94ff4a0a222f000a0a019c028bb5f8305..97c19db331d94c49a9d109d68b7051be70a7bc41 100644
--- a/test/core/end2end/tests/default_host.c
+++ b/test/core/end2end/tests/default_host.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -136,13 +135,16 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
   op->op = GRPC_OP_SEND_INITIAL_METADATA;
   op->data.send_initial_metadata.count = 0;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_RECV_INITIAL_METADATA;
   op->data.recv_initial_metadata = &initial_metadata_recv;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_RECV_STATUS_ON_CLIENT;
   op->data.recv_status_on_client.trailing_metadata = &trailing_metadata_recv;
@@ -150,13 +152,14 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
   op->data.recv_status_on_client.status_details = &details;
   op->data.recv_status_on_client.status_details_capacity = &details_capacity;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(error == GRPC_CALL_OK);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(error == GRPC_CALL_OK);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
@@ -174,16 +177,19 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
   op->op = GRPC_OP_SEND_INITIAL_METADATA;
   op->data.send_initial_metadata.count = 0;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_SEND_STATUS_FROM_SERVER;
   op->data.send_status_from_server.trailing_metadata_count = 0;
   op->data.send_status_from_server.status = GRPC_STATUS_UNIMPLEMENTED;
   op->data.send_status_from_server.status_details = "xyz";
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_RECV_CLOSE_ON_SERVER;
   op->data.recv_close_on_server.cancelled = &was_cancelled;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   error = grpc_call_start_batch(s, ops, op - ops, tag(102), NULL);
   GPR_ASSERT(error == GRPC_CALL_OK);
@@ -220,7 +226,9 @@ static void test_invoke_simple_request(grpc_end2end_test_config config) {
 }
 
 void grpc_end2end_tests(grpc_end2end_test_config config) {
-  if ((config.feature_mask & FEATURE_MASK_SUPPORTS_HOSTNAME_VERIFICATION) != 0) return;
-  if ((config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION) == 0) return;
+  if ((config.feature_mask & FEATURE_MASK_SUPPORTS_HOSTNAME_VERIFICATION) != 0)
+    return;
+  if ((config.feature_mask & FEATURE_MASK_SUPPORTS_DELAYED_CONNECTION) == 0)
+    return;
   test_invoke_simple_request(config);
 }
diff --git a/test/core/end2end/tests/disappearing_server.c b/test/core/end2end/tests/disappearing_server.c
index 0b98424c259741eafaf170ee074c4614521229f1..09762705e3209871145bdd70f25a3db97a123390 100644
--- a/test/core/end2end/tests/disappearing_server.c
+++ b/test/core/end2end/tests/disappearing_server.c
@@ -134,9 +134,9 @@ static void do_request_and_shutdown_server(grpc_end2end_test_fixture *f,
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f->server, &s, &call_details,
-                                   &request_metadata_recv, f->cq, f->cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f->server, &s, &call_details,
+                               &request_metadata_recv, f->cq, f->cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c b/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c
index a5683129c1e636ed323e22ba7e6452e0151f5a5a..233bc9bee2af8471727291e7f3fcb728c9a51643 100644
--- a/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c
+++ b/test/core/end2end/tests/early_server_shutdown_finishes_inflight_calls.c
@@ -142,9 +142,9 @@ static void test_early_server_shutdown_finishes_inflight_calls(
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/empty_batch.c b/test/core/end2end/tests/empty_batch.c
index feb2f18166f6a6b2f64037fb0f12b294f283016f..c93d236a6a755a858dd930547a9d24f0d4edca94 100644
--- a/test/core/end2end/tests/empty_batch.c
+++ b/test/core/end2end/tests/empty_batch.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/graceful_server_shutdown.c b/test/core/end2end/tests/graceful_server_shutdown.c
index 9ec9430d4754b3e0c57e8ed1124925fe8bdd7da1..d4e7a1ac6d1b5a65b1b7bb1d37c04d43476f8c42 100644
--- a/test/core/end2end/tests/graceful_server_shutdown.c
+++ b/test/core/end2end/tests/graceful_server_shutdown.c
@@ -149,9 +149,9 @@ static void test_early_server_shutdown_finishes_inflight_calls(
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/invoke_large_request.c b/test/core/end2end/tests/invoke_large_request.c
index 5fe369ea459bb5fbeedc7e3a1e2d0f58a1acbbb2..767708451164da9502f6f3d9d8197034ca8bd081 100644
--- a/test/core/end2end/tests/invoke_large_request.c
+++ b/test/core/end2end/tests/invoke_large_request.c
@@ -73,9 +73,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -175,9 +174,9 @@ static void test_invoke_large_request(grpc_end2end_test_config config) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/max_concurrent_streams.c b/test/core/end2end/tests/max_concurrent_streams.c
index 203d98d100425fb42a8543e7965427177b476d4d..0ba620b85140e0f66a662cb16116e0c130ef1f97 100644
--- a/test/core/end2end/tests/max_concurrent_streams.c
+++ b/test/core/end2end/tests/max_concurrent_streams.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -151,9 +150,9 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/max_message_length.c b/test/core/end2end/tests/max_message_length.c
index dd30e68f42f737028800d8fe6d3d72e04ebda8fd..2b9560716fdfc42d79822b6606edaded330798c4 100644
--- a/test/core/end2end/tests/max_message_length.c
+++ b/test/core/end2end/tests/max_message_length.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -171,9 +170,9 @@ static void test_max_message_length(grpc_end2end_test_config config) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/no_op.c b/test/core/end2end/tests/no_op.c
index 565d4ea2806caf0017d4df9b832458c653e3727c..157d0d5349055c87257e4ff5497538383983a534 100644
--- a/test/core/end2end/tests/no_op.c
+++ b/test/core/end2end/tests/no_op.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/ping_pong_streaming.c b/test/core/end2end/tests/ping_pong_streaming.c
index e19f115e40437dc02e99a8400d31b0b993e9cc86..43abda4d7f3ff4dcd246cfcd08f70b390480e451 100644
--- a/test/core/end2end/tests/ping_pong_streaming.c
+++ b/test/core/end2end/tests/ping_pong_streaming.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -158,9 +157,9 @@ static void test_pingpong_streaming(grpc_end2end_test_config config,
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(100));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(100));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(100), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/registered_call.c b/test/core/end2end/tests/registered_call.c
index 1ef595ee56704b85a37f72f63d346c30e35965d5..eddce6ded44f894a01ba1a599808b7f0b91b6438 100644
--- a/test/core/end2end/tests/registered_call.c
+++ b/test/core/end2end/tests/registered_call.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -152,9 +151,9 @@ static void simple_request_body(grpc_end2end_test_fixture f, void *rc) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
@@ -205,9 +204,8 @@ static void simple_request_body(grpc_end2end_test_fixture f, void *rc) {
 static void test_invoke_simple_request(grpc_end2end_test_config config) {
   grpc_end2end_test_fixture f =
       begin_test(config, "test_invoke_simple_request", NULL, NULL);
-  void *rc =
-      grpc_channel_register_call(f.client, "/foo", "foo.test.google.fr:1234",
-                                 NULL);
+  void *rc = grpc_channel_register_call(f.client, "/foo",
+                                        "foo.test.google.fr:1234", NULL);
 
   simple_request_body(f, rc);
   end_test(&f);
@@ -218,9 +216,8 @@ static void test_invoke_10_simple_requests(grpc_end2end_test_config config) {
   int i;
   grpc_end2end_test_fixture f =
       begin_test(config, "test_invoke_10_simple_requests", NULL, NULL);
-  void *rc =
-      grpc_channel_register_call(f.client, "/foo", "foo.test.google.fr:1234",
-                                 NULL);
+  void *rc = grpc_channel_register_call(f.client, "/foo",
+                                        "foo.test.google.fr:1234", NULL);
 
   for (i = 0; i < 10; i++) {
     simple_request_body(f, rc);
diff --git a/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c b/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c
index de6f46079528432babf2122ca5f33cddd12c1e36..2345f9404439687533b84f2d7a1aa38cd2541982 100644
--- a/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c
+++ b/test/core/end2end/tests/request_response_with_binary_metadata_and_payload.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -195,9 +194,9 @@ static void test_request_response_with_metadata_and_payload(
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/request_response_with_metadata_and_payload.c b/test/core/end2end/tests/request_response_with_metadata_and_payload.c
index b6196ab46e6c5cf72e563f072042c6c4fe486b36..a4cc27896cf0318e3c7149bdf744c53df6bd8576 100644
--- a/test/core/end2end/tests/request_response_with_metadata_and_payload.c
+++ b/test/core/end2end/tests/request_response_with_metadata_and_payload.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -110,10 +109,12 @@ static void test_request_response_with_metadata_and_payload(
   grpc_byte_buffer *response_payload =
       grpc_raw_byte_buffer_create(&response_payload_slice, 1);
   gpr_timespec deadline = five_seconds_time();
-  grpc_metadata meta_c[2] = {{"key1", "val1", 4, 0, {{NULL, NULL, NULL, NULL}}},
-                             {"key2", "val2", 4, 0, {{NULL, NULL, NULL, NULL}}}};
-  grpc_metadata meta_s[2] = {{"KeY3", "val3", 4, 0, {{NULL, NULL, NULL, NULL}}},
-                             {"KeY4", "val4", 4, 0, {{NULL, NULL, NULL, NULL}}}};
+  grpc_metadata meta_c[2] = {
+      {"key1", "val1", 4, 0, {{NULL, NULL, NULL, NULL}}},
+      {"key2", "val2", 4, 0, {{NULL, NULL, NULL, NULL}}}};
+  grpc_metadata meta_s[2] = {
+      {"KeY3", "val3", 4, 0, {{NULL, NULL, NULL, NULL}}},
+      {"KeY4", "val4", 4, 0, {{NULL, NULL, NULL, NULL}}}};
   grpc_end2end_test_fixture f = begin_test(
       config, "test_request_response_with_metadata_and_payload", NULL, NULL);
   cq_verifier *cqv = cq_verifier_create(f.cq);
@@ -177,9 +178,9 @@ static void test_request_response_with_metadata_and_payload(
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/request_response_with_payload.c b/test/core/end2end/tests/request_response_with_payload.c
index 0a45a482a3399074b5ffa2dfd16200b9b31e0347..ff00ae6d9ddc6f0817d7781927adad276231f036 100644
--- a/test/core/end2end/tests/request_response_with_payload.c
+++ b/test/core/end2end/tests/request_response_with_payload.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -168,9 +167,9 @@ static void request_response_with_payload(grpc_end2end_test_fixture f) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/request_response_with_payload_and_call_creds.c b/test/core/end2end/tests/request_response_with_payload_and_call_creds.c
index 8e0bc4e2ae16fb9fc4b4c05500cec2adb3c3152b..d862274fe314dd8387b81e642ad79ff93325ebbe 100644
--- a/test/core/end2end/tests/request_response_with_payload_and_call_creds.c
+++ b/test/core/end2end/tests/request_response_with_payload_and_call_creds.c
@@ -68,7 +68,7 @@ static grpc_end2end_test_fixture begin_test(grpc_end2end_test_config config,
     grpc_arg fail_auth_arg = {
         GRPC_ARG_STRING, FAIL_AUTH_CHECK_SERVER_ARG_NAME, {NULL}};
     grpc_channel_args args;
-    args.num_args= 1;
+    args.num_args = 1;
     args.args = &fail_auth_arg;
     config.init_server(&f, &args);
   } else {
@@ -93,9 +93,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -251,9 +250,9 @@ static void request_response_with_payload_and_call_creds(
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
@@ -439,25 +438,31 @@ static void test_request_with_server_rejecting_client_creds(
   op->data.recv_status_on_client.status_details = &details;
   op->data.recv_status_on_client.status_details_capacity = &details_capacity;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_SEND_INITIAL_METADATA;
   op->data.send_initial_metadata.count = 0;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_SEND_MESSAGE;
   op->data.send_message = request_payload;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_SEND_CLOSE_FROM_CLIENT;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_RECV_INITIAL_METADATA;
   op->data.recv_initial_metadata = &initial_metadata_recv;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   op->op = GRPC_OP_RECV_MESSAGE;
   op->data.recv_message = &response_payload_recv;
   op->flags = 0;
+  op->reserved = NULL;
   op++;
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(error == GRPC_CALL_OK);
diff --git a/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c b/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c
index 83744a8e2428c047c18317acb6ff2f38dd6635fc..8b764751f6a4018221570cd4900fbb529007d82b 100644
--- a/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c
+++ b/test/core/end2end/tests/request_response_with_trailing_metadata_and_payload.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -110,12 +109,15 @@ static void test_request_response_with_metadata_and_payload(
   grpc_byte_buffer *response_payload =
       grpc_raw_byte_buffer_create(&response_payload_slice, 1);
   gpr_timespec deadline = five_seconds_time();
-  grpc_metadata meta_c[2] = {{"key1", "val1", 4, 0, {{NULL, NULL, NULL, NULL}}},
-                             {"key2", "val2", 4, 0, {{NULL, NULL, NULL, NULL}}}};
-  grpc_metadata meta_s[2] = {{"key3", "val3", 4, 0, {{NULL, NULL, NULL, NULL}}},
-                             {"key4", "val4", 4, 0, {{NULL, NULL, NULL, NULL}}}};
-  grpc_metadata meta_t[2] = {{"key5", "val5", 4, 0, {{NULL, NULL, NULL, NULL}}},
-                             {"key6", "val6", 4, 0, {{NULL, NULL, NULL, NULL}}}};
+  grpc_metadata meta_c[2] = {
+      {"key1", "val1", 4, 0, {{NULL, NULL, NULL, NULL}}},
+      {"key2", "val2", 4, 0, {{NULL, NULL, NULL, NULL}}}};
+  grpc_metadata meta_s[2] = {
+      {"key3", "val3", 4, 0, {{NULL, NULL, NULL, NULL}}},
+      {"key4", "val4", 4, 0, {{NULL, NULL, NULL, NULL}}}};
+  grpc_metadata meta_t[2] = {
+      {"key5", "val5", 4, 0, {{NULL, NULL, NULL, NULL}}},
+      {"key6", "val6", 4, 0, {{NULL, NULL, NULL, NULL}}}};
   grpc_end2end_test_fixture f = begin_test(
       config, "test_request_response_with_metadata_and_payload", NULL, NULL);
   cq_verifier *cqv = cq_verifier_create(f.cq);
@@ -179,9 +181,9 @@ static void test_request_response_with_metadata_and_payload(
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/request_with_compressed_payload.c b/test/core/end2end/tests/request_with_compressed_payload.c
index 6a067d8d1db6e05015b443e9be7a9184d159b5b0..299943c548f1bb987cbedd1e58395b534050b04d 100644
--- a/test/core/end2end/tests/request_with_compressed_payload.c
+++ b/test/core/end2end/tests/request_with_compressed_payload.c
@@ -46,6 +46,7 @@
 #include "test/core/end2end/cq_verifier.h"
 #include "src/core/channel/channel_args.h"
 #include "src/core/channel/compress_filter.h"
+#include "src/core/surface/call.h"
 
 enum { TIMEOUT = 200000 };
 
@@ -79,9 +80,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -131,7 +131,8 @@ static void request_with_payload_template(
   cq_verifier *cqv;
   char str[1024];
 
-  memset(str, 'x', 1023); str[1023] = '\0';
+  memset(str, 'x', 1023);
+  str[1023] = '\0';
   request_payload_slice = gpr_slice_from_copied_string(str);
   request_payload = grpc_raw_byte_buffer_create(&request_payload_slice, 1);
 
@@ -188,13 +189,21 @@ static void request_with_payload_template(
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq,
-                                   f.cq, tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
 
+  GPR_ASSERT(GPR_BITCOUNT(grpc_call_get_encodings_accepted_by_peer(s)) == 3);
+  GPR_ASSERT(GPR_BITGET(grpc_call_get_encodings_accepted_by_peer(s),
+                        GRPC_COMPRESS_NONE) != 0);
+  GPR_ASSERT(GPR_BITGET(grpc_call_get_encodings_accepted_by_peer(s),
+                        GRPC_COMPRESS_DEFLATE) != 0);
+  GPR_ASSERT(GPR_BITGET(grpc_call_get_encodings_accepted_by_peer(s),
+                        GRPC_COMPRESS_GZIP) != 0);
+
   op = ops;
   op->op = GRPC_OP_SEND_INITIAL_METADATA;
   op->data.send_initial_metadata.count = 0;
@@ -270,8 +279,7 @@ static void test_invoke_request_with_exceptionally_uncompressed_payload(
     grpc_end2end_test_config config) {
   request_with_payload_template(
       config, "test_invoke_request_with_exceptionally_uncompressed_payload",
-      GRPC_WRITE_NO_COMPRESS, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_NONE,
-      NULL);
+      GRPC_WRITE_NO_COMPRESS, GRPC_COMPRESS_GZIP, GRPC_COMPRESS_NONE, NULL);
 }
 
 static void test_invoke_request_with_uncompressed_payload(
diff --git a/test/core/end2end/tests/request_with_flags.c b/test/core/end2end/tests/request_with_flags.c
index 3255f144574e03bf42e468b45c81129d4f2679f4..eb2e5dc7e8b9090d68805d06d00b52ae855d8911 100644
--- a/test/core/end2end/tests/request_with_flags.c
+++ b/test/core/end2end/tests/request_with_flags.c
@@ -76,9 +76,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/request_with_large_metadata.c b/test/core/end2end/tests/request_with_large_metadata.c
index 5b43caf18c040c6f557a13dfac4e88702a8cf170..98e47aaf98e5fbda97e8e2eda3f1ee51f3f49f00 100644
--- a/test/core/end2end/tests/request_with_large_metadata.c
+++ b/test/core/end2end/tests/request_with_large_metadata.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -171,9 +170,9 @@ static void test_request_with_large_metadata(grpc_end2end_test_config config) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/request_with_payload.c b/test/core/end2end/tests/request_with_payload.c
index c0013fb60fc566359bc841bab37fe0fd4e36c315..149dbaeb002edbd9f0da78af2284163b3435e339 100644
--- a/test/core/end2end/tests/request_with_payload.c
+++ b/test/core/end2end/tests/request_with_payload.c
@@ -75,9 +75,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
diff --git a/test/core/end2end/tests/server_finishes_request.c b/test/core/end2end/tests/server_finishes_request.c
index ab2f57526360721080aa8cba4e88a018400d4ac4..8bacc6c73038a23b7c0cd4b474a22d5f8ac5e9ae 100644
--- a/test/core/end2end/tests/server_finishes_request.c
+++ b/test/core/end2end/tests/server_finishes_request.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -149,9 +148,9 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/simple_delayed_request.c b/test/core/end2end/tests/simple_delayed_request.c
index 277aa2596e550a57faef40d179f99f607b7d9f80..9133aacc352362490e762ea5a71bdfcf6ecf6b1c 100644
--- a/test/core/end2end/tests/simple_delayed_request.c
+++ b/test/core/end2end/tests/simple_delayed_request.c
@@ -63,9 +63,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -146,9 +145,9 @@ static void simple_delayed_request_body(grpc_end2end_test_config config,
 
   config.init_server(f, server_args);
 
-  error = grpc_server_request_call(f->server, &s, &call_details,
-                                   &request_metadata_recv, f->cq, f->cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f->server, &s, &call_details,
+                               &request_metadata_recv, f->cq, f->cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/simple_request.c b/test/core/end2end/tests/simple_request.c
index d3d2f27560401111c9e6dbd7d2b2ef649675f25b..0f62d958ae06143b4275727340425171c949bb30 100644
--- a/test/core/end2end/tests/simple_request.c
+++ b/test/core/end2end/tests/simple_request.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -159,9 +158,9 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c b/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c
index 4fc206cbfcb5de62e44cd25e57207c9f4a6a1cff..0067bb4bef7fedc8e4b95000af22dd17ecea0a4a 100644
--- a/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c
+++ b/test/core/end2end/tests/simple_request_with_high_initial_sequence_number.c
@@ -77,9 +77,8 @@ static void drain_cq(grpc_completion_queue *cq) {
 static void shutdown_server(grpc_end2end_test_fixture *f) {
   if (!f->server) return;
   grpc_server_shutdown_and_notify(f->server, f->cq, tag(1000));
-  GPR_ASSERT(grpc_completion_queue_pluck(f->cq, tag(1000),
-                                         GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5),
-                                         NULL)
+  GPR_ASSERT(grpc_completion_queue_pluck(
+                 f->cq, tag(1000), GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5), NULL)
                  .type == GRPC_OP_COMPLETE);
   grpc_server_destroy(f->server);
   f->server = NULL;
@@ -153,9 +152,9 @@ static void simple_request_body(grpc_end2end_test_fixture f) {
   error = grpc_call_start_batch(c, ops, op - ops, tag(1), NULL);
   GPR_ASSERT(GRPC_CALL_OK == error);
 
-  error = grpc_server_request_call(f.server, &s, &call_details,
-                                   &request_metadata_recv, f.cq, f.cq,
-                                   tag(101));
+  error =
+      grpc_server_request_call(f.server, &s, &call_details,
+                               &request_metadata_recv, f.cq, f.cq, tag(101));
   GPR_ASSERT(GRPC_CALL_OK == error);
   cq_expect_completion(cqv, tag(101), 1);
   cq_verify(cqv);
diff --git a/test/core/fling/fling_test.c b/test/core/fling/fling_test.c
index f9ba461d24b8d3c99ca2e84c512700058eb2bb05..29d90507044c614bd42d3b6be4c78f6112d38fdf 100644
--- a/test/core/fling/fling_test.c
+++ b/test/core/fling/fling_test.c
@@ -57,22 +57,24 @@ int main(int argc, char **argv) {
     strcpy(root, ".");
   }
   /* start the server */
-  gpr_asprintf(&args[0], "%s/fling_server%s", root, gpr_subprocess_binary_extension());
+  gpr_asprintf(&args[0], "%s/fling_server%s", root,
+               gpr_subprocess_binary_extension());
   args[1] = "--bind";
   gpr_join_host_port(&args[2], "::", port);
   args[3] = "--no-secure";
-  svr = gpr_subprocess_create(4, (const char**)args);
+  svr = gpr_subprocess_create(4, (const char **)args);
   gpr_free(args[0]);
   gpr_free(args[2]);
 
   /* start the client */
-  gpr_asprintf(&args[0], "%s/fling_client%s", root, gpr_subprocess_binary_extension());
+  gpr_asprintf(&args[0], "%s/fling_client%s", root,
+               gpr_subprocess_binary_extension());
   args[1] = "--target";
   gpr_join_host_port(&args[2], "127.0.0.1", port);
   args[3] = "--scenario=ping-pong-request";
   args[4] = "--no-secure";
   args[5] = 0;
-  cli = gpr_subprocess_create(6, (const char**)args);
+  cli = gpr_subprocess_create(6, (const char **)args);
   gpr_free(args[0]);
   gpr_free(args[2]);
 
diff --git a/test/core/fling/server.c b/test/core/fling/server.c
index 2873e4af4b6eafa669e86a42167754245cf4a93b..010217939d0f9b464a1f2133af1d5e723e8f1d48 100644
--- a/test/core/fling/server.c
+++ b/test/core/fling/server.c
@@ -248,7 +248,8 @@ int main(int argc, char **argv) {
     }
     ev = grpc_completion_queue_next(
         cq, gpr_time_add(gpr_now(GPR_CLOCK_REALTIME),
-                         gpr_time_from_micros(1000000, GPR_TIMESPAN)), NULL);
+                         gpr_time_from_micros(1000000, GPR_TIMESPAN)),
+        NULL);
     s = ev.tag;
     switch (ev.type) {
       case GRPC_OP_COMPLETE:
diff --git a/test/core/httpcli/format_request_test.c b/test/core/httpcli/format_request_test.c
index da850049e20dafed7e32a7b11f26b5463b1b760a..82b2ccb122c22fcd70794b05e57e1286e8cf2fc4 100644
--- a/test/core/httpcli/format_request_test.c
+++ b/test/core/httpcli/format_request_test.c
@@ -142,8 +142,7 @@ static void test_format_post_request_content_type_override(void) {
                       "POST /index.html HTTP/1.0\r\n"
                       "Host: example.com\r\n"
                       "Connection: close\r\n"
-                      "User-Agent: " GRPC_HTTPCLI_USER_AGENT
-                      "\r\n"
+                      "User-Agent: " GRPC_HTTPCLI_USER_AGENT "\r\n"
                       "x-yz: abc\r\n"
                       "Content-Type: application/x-www-form-urlencoded\r\n"
                       "Content-Length: 11\r\n"
diff --git a/test/core/httpcli/httpcli_test.c b/test/core/httpcli/httpcli_test.c
index 8dddfbee9868cd4e295c8bce2fe1d8efdf81377c..42b2661c0a37a35e06364695bbb5eae1fe9b0e88 100644
--- a/test/core/httpcli/httpcli_test.c
+++ b/test/core/httpcli/httpcli_test.c
@@ -88,7 +88,8 @@ static void test_get(int use_ssl, int port) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (!g_done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, n_seconds_time(20));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      n_seconds_time(20));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
   gpr_free(host);
@@ -114,7 +115,8 @@ static void test_post(int use_ssl, int port) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (!g_done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, n_seconds_time(20));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      n_seconds_time(20));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
   gpr_free(host);
diff --git a/test/core/iomgr/endpoint_tests.c b/test/core/iomgr/endpoint_tests.c
index 8186c96da1b190e80c0cfbb97d503afe8c946948..6ef8e9ca3bc9420bf6de12f6df7a054036a1d1db 100644
--- a/test/core/iomgr/endpoint_tests.c
+++ b/test/core/iomgr/endpoint_tests.c
@@ -256,7 +256,8 @@ static void read_and_write_test(grpc_endpoint_test_config config,
   while (!state.read_done || !state.write_done) {
     grpc_pollset_worker worker;
     GPR_ASSERT(gpr_time_cmp(gpr_now(GPR_CLOCK_MONOTONIC), deadline) < 0);
-    grpc_pollset_work(g_pollset, &worker, deadline);
+    grpc_pollset_work(g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      deadline);
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset));
 
@@ -353,7 +354,8 @@ static void shutdown_during_write_test(grpc_endpoint_test_config config,
         while (!write_st.done) {
           grpc_pollset_worker worker;
           GPR_ASSERT(gpr_time_cmp(gpr_now(deadline.clock_type), deadline) < 0);
-          grpc_pollset_work(g_pollset, &worker, deadline);
+          grpc_pollset_work(g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                            deadline);
         }
         gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset));
         grpc_endpoint_destroy(write_st.ep);
@@ -361,7 +363,8 @@ static void shutdown_during_write_test(grpc_endpoint_test_config config,
         while (!read_st.done) {
           grpc_pollset_worker worker;
           GPR_ASSERT(gpr_time_cmp(gpr_now(deadline.clock_type), deadline) < 0);
-          grpc_pollset_work(g_pollset, &worker, deadline);
+          grpc_pollset_work(g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                            deadline);
         }
         gpr_mu_unlock(GRPC_POLLSET_MU(g_pollset));
         gpr_free(slices);
diff --git a/test/core/iomgr/fd_posix_test.c b/test/core/iomgr/fd_posix_test.c
index adcbcafdbbaa3794016f375962da39eb7a98f736..8bba87d61fc68aa9a5cb072007de89c77c5d21bf 100644
--- a/test/core/iomgr/fd_posix_test.c
+++ b/test/core/iomgr/fd_posix_test.c
@@ -250,7 +250,8 @@ static void server_wait_and_shutdown(server *sv) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (!sv->done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
 }
@@ -358,7 +359,8 @@ static void client_wait_and_shutdown(client *cl) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (!cl->done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
 }
@@ -448,7 +450,8 @@ static void test_grpc_fd_change(void) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (a.cb_that_ran == NULL) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   GPR_ASSERT(a.cb_that_ran == first_read_callback);
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -467,7 +470,8 @@ static void test_grpc_fd_change(void) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (b.cb_that_ran == NULL) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, gpr_inf_future(GPR_CLOCK_MONOTONIC));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   /* Except now we verify that second_read_callback ran instead */
   GPR_ASSERT(b.cb_that_ran == second_read_callback);
diff --git a/test/core/iomgr/tcp_client_posix_test.c b/test/core/iomgr/tcp_client_posix_test.c
index 07bbe1f40251e3e503c09ad19c108fe224b69d4b..dea0b33b8e92ad899780ce580511c653f15cf6fa 100644
--- a/test/core/iomgr/tcp_client_posix_test.c
+++ b/test/core/iomgr/tcp_client_posix_test.c
@@ -112,7 +112,8 @@ void test_succeeds(void) {
 
   while (g_connections_complete == connections_complete_before) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      GRPC_TIMEOUT_SECONDS_TO_DEADLINE(5));
   }
 
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -142,7 +143,8 @@ void test_fails(void) {
   /* wait for the connection callback to finish */
   while (g_connections_complete == connections_complete_before) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, test_deadline());
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      test_deadline());
   }
 
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -211,7 +213,8 @@ void test_times_out(void) {
       GPR_ASSERT(g_connections_complete ==
                  connections_complete_before + is_after_deadline);
     }
-    grpc_pollset_work(&g_pollset, &worker, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
 
diff --git a/test/core/iomgr/tcp_posix_test.c b/test/core/iomgr/tcp_posix_test.c
index 17a85ceaec7908f6f5b2a7577e0be5d284e7bfa7..6ad832231f5933ec3c64f01c6d2cf57fc03ce756 100644
--- a/test/core/iomgr/tcp_posix_test.c
+++ b/test/core/iomgr/tcp_posix_test.c
@@ -187,7 +187,8 @@ static void read_test(ssize_t num_bytes, ssize_t slice_size) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (state.read_bytes < state.target_read_bytes) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, deadline);
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      deadline);
   }
   GPR_ASSERT(state.read_bytes == state.target_read_bytes);
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -224,7 +225,8 @@ static void large_read_test(ssize_t slice_size) {
   gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
   while (state.read_bytes < state.target_read_bytes) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&g_pollset, &worker, deadline);
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      deadline);
   }
   GPR_ASSERT(state.read_bytes == state.target_read_bytes);
   gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
@@ -285,7 +287,8 @@ void drain_socket_blocking(int fd, size_t num_bytes, size_t read_size) {
   for (;;) {
     grpc_pollset_worker worker;
     gpr_mu_lock(GRPC_POLLSET_MU(&g_pollset));
-    grpc_pollset_work(&g_pollset, &worker, GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10));
+    grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      GRPC_TIMEOUT_MILLIS_TO_DEADLINE(10));
     gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
     do {
       bytes_read =
@@ -365,7 +368,8 @@ static void write_test(ssize_t num_bytes, ssize_t slice_size) {
       if (state.write_done) {
         break;
       }
-      grpc_pollset_work(&g_pollset, &worker, deadline);
+      grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                        deadline);
     }
     gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
   }
@@ -422,7 +426,8 @@ static void write_error_test(ssize_t num_bytes, ssize_t slice_size) {
         if (state.write_done) {
           break;
         }
-        grpc_pollset_work(&g_pollset, &worker, deadline);
+        grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                          deadline);
       }
       gpr_mu_unlock(GRPC_POLLSET_MU(&g_pollset));
       break;
diff --git a/test/core/iomgr/tcp_server_posix_test.c b/test/core/iomgr/tcp_server_posix_test.c
index b82d7c08b1da4d5653ca259534cc7ba3b836c997..29a20cba8e5d657b76f2db1d69c007db5678af55 100644
--- a/test/core/iomgr/tcp_server_posix_test.c
+++ b/test/core/iomgr/tcp_server_posix_test.c
@@ -137,7 +137,8 @@ static void test_connect(int n) {
     while (g_nconnects == nconnects_before &&
            gpr_time_cmp(deadline, gpr_now(deadline.clock_type)) > 0) {
       grpc_pollset_worker worker;
-      grpc_pollset_work(&g_pollset, &worker, deadline);
+      grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                        deadline);
     }
     gpr_log(GPR_DEBUG, "wait done");
 
diff --git a/test/core/iomgr/udp_server_test.c b/test/core/iomgr/udp_server_test.c
index 74b78958b028163e0395504ed5b314066b5e9f7a..471d5b50c7c67b9de31b138ea3b7cb714a20cc2f 100644
--- a/test/core/iomgr/udp_server_test.c
+++ b/test/core/iomgr/udp_server_test.c
@@ -49,8 +49,7 @@ static grpc_pollset g_pollset;
 static int g_number_of_reads = 0;
 static int g_number_of_bytes_read = 0;
 
-static void on_connect(void *arg, grpc_endpoint *udp) {
-}
+static void on_connect(void *arg, grpc_endpoint *udp) {}
 
 static void on_read(int fd, grpc_udp_server_cb new_transport_cb, void *cb_arg) {
   char read_buffer[512];
@@ -122,7 +121,8 @@ static void test_receive(int number_of_clients) {
 
   memset(&addr, 0, sizeof(addr));
   addr.ss_family = AF_INET;
-  GPR_ASSERT(grpc_udp_server_add_port(s, (struct sockaddr *)&addr, addr_len, on_read));
+  GPR_ASSERT(
+      grpc_udp_server_add_port(s, (struct sockaddr *)&addr, addr_len, on_read));
 
   svrfd = grpc_udp_server_get_fd(s, 0);
   GPR_ASSERT(svrfd >= 0);
@@ -146,7 +146,8 @@ static void test_receive(int number_of_clients) {
     while (g_number_of_reads == number_of_reads_before &&
            gpr_time_cmp(deadline, gpr_now(deadline.clock_type)) > 0) {
       grpc_pollset_worker worker;
-      grpc_pollset_work(&g_pollset, &worker, deadline);
+      grpc_pollset_work(&g_pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                        deadline);
     }
     GPR_ASSERT(g_number_of_reads == number_of_reads_before + 1);
     close(clifd);
diff --git a/test/core/json/json_test.c b/test/core/json/json_test.c
index 3033419118fb21faed4e3f6b5fbc2d29e225c911..a500effceab54b9e4c702f855655d271b0d24f1e 100644
--- a/test/core/json/json_test.c
+++ b/test/core/json/json_test.c
@@ -66,7 +66,7 @@ static testing_pair testing_pairs[] = {
     {"\"\\ud834\\udd1e\"", "\"\\ud834\\udd1e\""},
     /* Testing nested empty containers. */
     {
-     " [ [ ] , { } , [ ] ] ", "[[],{},[]]",
+        " [ [ ] , { } , [ ] ] ", "[[],{},[]]",
     },
     /* Testing escapes and control chars in key strings. */
     {" { \"\x7f\\n\\\\a , b\": 1, \"\": 0 } ",
diff --git a/test/core/security/auth_context_test.c b/test/core/security/auth_context_test.c
index d785eb6064d4f8252d5d46d589a4c368da0da8e8..d091c7e7e63006dc0b0acdcc24ce8268d6045dd5 100644
--- a/test/core/security/auth_context_test.c
+++ b/test/core/security/auth_context_test.c
@@ -151,4 +151,3 @@ int main(int argc, char **argv) {
   test_chained_context();
   return 0;
 }
-
diff --git a/test/core/security/json_token_test.c b/test/core/security/json_token_test.c
index da57cef15ceba5472595005bec58a4e5b8dffbc1..0bac61eb54c802cf4e0f3e4b96503b78cb2b7765 100644
--- a/test/core/security/json_token_test.c
+++ b/test/core/security/json_token_test.c
@@ -263,8 +263,8 @@ static void check_jwt_header(grpc_json *header) {
 
   GPR_ASSERT(kid != NULL);
   GPR_ASSERT(kid->type == GRPC_JSON_STRING);
-  GPR_ASSERT(strcmp(kid->value,
-                    "e6b5137873db8d2ef81e06a47289e6434ec8a165") == 0);
+  GPR_ASSERT(strcmp(kid->value, "e6b5137873db8d2ef81e06a47289e6434ec8a165") ==
+             0);
 }
 
 static void check_jwt_claim(grpc_json *claim, const char *expected_audience,
@@ -298,9 +298,11 @@ static void check_jwt_claim(grpc_json *claim, const char *expected_audience,
 
   GPR_ASSERT(iss != NULL);
   GPR_ASSERT(iss->type == GRPC_JSON_STRING);
-  GPR_ASSERT(strcmp(iss->value,
-          "777-abaslkan11hlb6nmim3bpspl31ud@developer.gserviceaccount.com")
-             ==0);
+  GPR_ASSERT(
+      strcmp(
+          iss->value,
+          "777-abaslkan11hlb6nmim3bpspl31ud@developer.gserviceaccount.com") ==
+      0);
 
   if (expected_scope != NULL) {
     GPR_ASSERT(scope != NULL);
diff --git a/test/core/security/jwt_verifier_test.c b/test/core/security/jwt_verifier_test.c
index 440286ea1a6ab3b3d039053a9400a2a4022db208..5cc8b2e9be6cc50ed132dca8bccaf0a909eba205 100644
--- a/test/core/security/jwt_verifier_test.c
+++ b/test/core/security/jwt_verifier_test.c
@@ -93,8 +93,7 @@ static const char json_key_str_part3_for_custom_email_issuer[] =
     "com\", \"type\": \"service_account\" }";
 
 static grpc_jwt_verifier_email_domain_key_url_mapping custom_mapping = {
-  "bar.com", "keys.bar.com/jwk"
-};
+    "bar.com", "keys.bar.com/jwk"};
 
 static const char expected_user_data[] = "user data";
 
@@ -153,7 +152,7 @@ static const char expired_claims[] =
     "  \"iss\": \"blah.foo.com\","
     "  \"sub\": \"juju@blah.foo.com\","
     "  \"jti\": \"jwtuniqueid\","
-    "  \"iat\": 100,"  /* Way back in the past... */
+    "  \"iat\": 100," /* Way back in the past... */
     "  \"exp\": 120,"
     "  \"nbf\": 60,"
     "  \"foo\": \"bar\"}";
@@ -316,8 +315,8 @@ static void test_jwt_verifier_google_email_issuer_success(void) {
   GPR_ASSERT(grpc_auth_json_key_is_valid(&key));
   grpc_httpcli_set_override(httpcli_get_google_keys_for_email,
                             httpcli_post_should_not_be_called);
-  jwt =
-      grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime, NULL);
+  jwt = grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime,
+                                 NULL);
   grpc_auth_json_key_destruct(&key);
   GPR_ASSERT(jwt != NULL);
   grpc_jwt_verifier_verify(verifier, NULL, jwt, expected_audience,
@@ -348,8 +347,8 @@ static void test_jwt_verifier_custom_email_issuer_success(void) {
   GPR_ASSERT(grpc_auth_json_key_is_valid(&key));
   grpc_httpcli_set_override(httpcli_get_custom_keys_for_email,
                             httpcli_post_should_not_be_called);
-  jwt =
-      grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime, NULL);
+  jwt = grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime,
+                                 NULL);
   grpc_auth_json_key_destruct(&key);
   GPR_ASSERT(jwt != NULL);
   grpc_jwt_verifier_verify(verifier, NULL, jwt, expected_audience,
@@ -359,9 +358,10 @@ static void test_jwt_verifier_custom_email_issuer_success(void) {
   grpc_httpcli_set_override(NULL, NULL);
 }
 
-static int httpcli_get_jwk_set(
-    const grpc_httpcli_request *request, gpr_timespec deadline,
-    grpc_httpcli_response_cb on_response, void *user_data) {
+static int httpcli_get_jwk_set(const grpc_httpcli_request *request,
+                               gpr_timespec deadline,
+                               grpc_httpcli_response_cb on_response,
+                               void *user_data) {
   grpc_httpcli_response response = http_response(200, gpr_strdup(good_jwk_set));
   GPR_ASSERT(request->handshaker == &grpc_httpcli_ssl);
   GPR_ASSERT(strcmp(request->host, "www.googleapis.com") == 0);
@@ -396,8 +396,8 @@ static void test_jwt_verifier_url_issuer_success(void) {
   GPR_ASSERT(grpc_auth_json_key_is_valid(&key));
   grpc_httpcli_set_override(httpcli_get_openid_config,
                             httpcli_post_should_not_be_called);
-  jwt =
-      grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime, NULL);
+  jwt = grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime,
+                                 NULL);
   grpc_auth_json_key_destruct(&key);
   GPR_ASSERT(jwt != NULL);
   grpc_jwt_verifier_verify(verifier, NULL, jwt, expected_audience,
@@ -436,8 +436,8 @@ static void test_jwt_verifier_url_issuer_bad_config(void) {
   GPR_ASSERT(grpc_auth_json_key_is_valid(&key));
   grpc_httpcli_set_override(httpcli_get_bad_json,
                             httpcli_post_should_not_be_called);
-  jwt =
-      grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime, NULL);
+  jwt = grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime,
+                                 NULL);
   grpc_auth_json_key_destruct(&key);
   GPR_ASSERT(jwt != NULL);
   grpc_jwt_verifier_verify(verifier, NULL, jwt, expected_audience,
@@ -457,8 +457,8 @@ static void test_jwt_verifier_bad_json_key(void) {
   GPR_ASSERT(grpc_auth_json_key_is_valid(&key));
   grpc_httpcli_set_override(httpcli_get_bad_json,
                             httpcli_post_should_not_be_called);
-  jwt =
-      grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime, NULL);
+  jwt = grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime,
+                                 NULL);
   grpc_auth_json_key_destruct(&key);
   GPR_ASSERT(jwt != NULL);
   grpc_jwt_verifier_verify(verifier, NULL, jwt, expected_audience,
@@ -503,8 +503,8 @@ static void test_jwt_verifier_bad_signature(void) {
   GPR_ASSERT(grpc_auth_json_key_is_valid(&key));
   grpc_httpcli_set_override(httpcli_get_openid_config,
                             httpcli_post_should_not_be_called);
-  jwt =
-      grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime, NULL);
+  jwt = grpc_jwt_encode_and_sign(&key, expected_audience, expected_lifetime,
+                                 NULL);
   grpc_auth_json_key_destruct(&key);
   corrupt_jwt_sig(jwt);
   GPR_ASSERT(jwt != NULL);
@@ -546,7 +546,6 @@ static void test_jwt_verifier_bad_format(void) {
 /* bad signature custom provided email*/
 /* bad key */
 
-
 int main(int argc, char **argv) {
   grpc_test_init(argc, argv);
   test_claims_success();
@@ -562,4 +561,3 @@ int main(int argc, char **argv) {
   test_jwt_verifier_bad_format();
   return 0;
 }
-
diff --git a/test/core/security/oauth2_utils.c b/test/core/security/oauth2_utils.c
index 990855ac6ae80030ded756ad69ccf6f894df12f0..7df6fade6b2b04e173d1aa20496e0e0fee651fe3 100644
--- a/test/core/security/oauth2_utils.c
+++ b/test/core/security/oauth2_utils.c
@@ -85,7 +85,7 @@ char *grpc_test_fetch_oauth2_token_with_credentials(grpc_credentials *creds) {
   gpr_mu_lock(GRPC_POLLSET_MU(&request.pollset));
   while (!request.is_done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&request.pollset, &worker,
+    grpc_pollset_work(&request.pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
                       gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&request.pollset));
diff --git a/test/core/security/print_google_default_creds_token.c b/test/core/security/print_google_default_creds_token.c
index 7238efbbfd2963b38ccc116c609e3dbd00ea1c42..753221cada77b66d90e787f8e44f58e1639700b8 100644
--- a/test/core/security/print_google_default_creds_token.c
+++ b/test/core/security/print_google_default_creds_token.c
@@ -49,8 +49,7 @@ typedef struct {
   int is_done;
 } synchronizer;
 
-static void on_metadata_response(void *user_data,
-                                 grpc_credentials_md *md_elems,
+static void on_metadata_response(void *user_data, grpc_credentials_md *md_elems,
                                  size_t num_md,
                                  grpc_credentials_status status) {
   synchronizer *sync = user_data;
@@ -97,8 +96,8 @@ int main(int argc, char **argv) {
   gpr_mu_lock(GRPC_POLLSET_MU(&sync.pollset));
   while (!sync.is_done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&sync.pollset, &worker,
-                      gpr_inf_future(GPR_CLOCK_REALTIME));
+    grpc_pollset_work(&sync.pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                      gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&sync.pollset));
 
diff --git a/test/core/security/security_connector_test.c b/test/core/security/security_connector_test.c
index b37fd7213df2e4a9a4d5cde9f67f68f6eacb1df0..3f6c592b0bd20061d8fd3f6d06c3a33c2a1ced8d 100644
--- a/test/core/security/security_connector_test.c
+++ b/test/core/security/security_connector_test.c
@@ -77,9 +77,9 @@ static void test_unauthenticated_ssl_peer(void) {
 }
 
 static int check_identity(const grpc_auth_context *ctx,
-                         const char *expected_property_name,
-                         const char **expected_identities,
-                         size_t num_identities) {
+                          const char *expected_property_name,
+                          const char **expected_identities,
+                          size_t num_identities) {
   grpc_auth_property_iterator it;
   const grpc_auth_property *prop;
   size_t i;
@@ -166,7 +166,8 @@ static void test_cn_and_one_san_ssl_peer_to_auth_context(void) {
   ctx = tsi_ssl_peer_to_auth_context(&peer);
   GPR_ASSERT(ctx != NULL);
   GPR_ASSERT(grpc_auth_context_peer_is_authenticated(ctx));
-  GPR_ASSERT(check_identity(ctx, GRPC_X509_SAN_PROPERTY_NAME, &expected_san, 1));
+  GPR_ASSERT(
+      check_identity(ctx, GRPC_X509_SAN_PROPERTY_NAME, &expected_san, 1));
   GPR_ASSERT(check_transport_security_type(ctx));
   GPR_ASSERT(check_x509_cn(ctx, expected_cn));
 
diff --git a/test/core/security/verify_jwt.c b/test/core/security/verify_jwt.c
index 69bbc3cc0cb13ae6ad2d130d03a13d7f30cb97bc..f4432667ee23c0e51a5b14801cb028d25ffa57b3 100644
--- a/test/core/security/verify_jwt.c
+++ b/test/core/security/verify_jwt.c
@@ -111,7 +111,7 @@ int main(int argc, char **argv) {
   gpr_mu_lock(GRPC_POLLSET_MU(&sync.pollset));
   while (!sync.is_done) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&sync.pollset, &worker,
+    grpc_pollset_work(&sync.pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
                       gpr_inf_future(GPR_CLOCK_MONOTONIC));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&sync.pollset));
@@ -120,4 +120,3 @@ int main(int argc, char **argv) {
   gpr_cmdline_destroy(cl);
   return !sync.success;
 }
-
diff --git a/test/core/statistics/census_log_tests.h b/test/core/statistics/census_log_tests.h
index 28bde086f3b28d96cb298a67491f248579ee1c50..ec3241b4f97aa98c2eb86b0deb31e5522cb03ddc 100644
--- a/test/core/statistics/census_log_tests.h
+++ b/test/core/statistics/census_log_tests.h
@@ -48,4 +48,4 @@ void test_multiple_writers();
 void test_performance();
 void test_small_log();
 
-#endif  /* GRPC_TEST_CORE_STATISTICS_CENSUS_LOG_TESTS_H */
+#endif /* GRPC_TEST_CORE_STATISTICS_CENSUS_LOG_TESTS_H */
diff --git a/test/core/statistics/hash_table_test.c b/test/core/statistics/hash_table_test.c
index 1e9e1c8d236ff08de89dbf413f07a24b9391d0a9..2568e96cba165fcece59b3b6a238bd8512e90943 100644
--- a/test/core/statistics/hash_table_test.c
+++ b/test/core/statistics/hash_table_test.c
@@ -65,8 +65,8 @@ static void free_data(void* data) { gpr_free(data); }
 static void test_create_table(void) {
   /* Create table with uint64 key type */
   census_ht* ht = NULL;
-  census_ht_option ht_options = {CENSUS_HT_UINT64, 1999, NULL,
-                                 NULL,             NULL, NULL};
+  census_ht_option ht_options = {
+      CENSUS_HT_UINT64, 1999, NULL, NULL, NULL, NULL};
   ht = census_ht_create(&ht_options);
   GPR_ASSERT(ht != NULL);
   GPR_ASSERT(census_ht_get_size(ht) == 0);
@@ -97,7 +97,7 @@ static void test_table_with_int_key(void) {
   for (i = 0; i < 20; ++i) {
     census_ht_key key;
     key.val = i;
-    census_ht_insert(ht, key, (void*)(gpr_intptr) i);
+    census_ht_insert(ht, key, (void*)(gpr_intptr)i);
     GPR_ASSERT(census_ht_get_size(ht) == i + 1);
   }
   for (i = 0; i < 20; i++) {
@@ -105,7 +105,7 @@ static void test_table_with_int_key(void) {
     census_ht_key key;
     key.val = i;
     val = census_ht_find(ht, key);
-    GPR_ASSERT(val == (void*)(gpr_intptr) i);
+    GPR_ASSERT(val == (void*)(gpr_intptr)i);
   }
   elements = census_ht_get_all_elements(ht, &num_elements);
   GPR_ASSERT(elements != NULL);
@@ -212,9 +212,9 @@ static void test_table_with_string_key(void) {
   census_ht_option opt = {CENSUS_HT_POINTER, 7,    &hash64,
                           &cmp_str_keys,     NULL, NULL};
   census_ht* ht = census_ht_create(&opt);
-  const char* keys[] = {"k1",    "a",                              "000",
-                        "apple", "banana_a_long_long_long_banana", "%$",
-                        "111",   "foo",                            "b"};
+  const char* keys[] = {
+      "k1", "a",   "000", "apple", "banana_a_long_long_long_banana",
+      "%$", "111", "foo", "b"};
   const int vals[] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
   int i = 0;
   GPR_ASSERT(ht != NULL);
diff --git a/test/core/support/cmdline_test.c b/test/core/support/cmdline_test.c
index 26153b192cb12e6e4b4c5813c1ba41bc058f89c0..1c77c152334ea3411c8d2ff6d5d27b2c104ebbf8 100644
--- a/test/core/support/cmdline_test.c
+++ b/test/core/support/cmdline_test.c
@@ -287,8 +287,9 @@ static void test_usage(void) {
   gpr_cmdline_add_flag(cl, "flag", NULL, &flag);
 
   usage = gpr_cmdline_usage_string(cl, "test");
-  GPR_ASSERT(0 == strcmp(usage,
-    "Usage: test [--str=string] [--x=int] [--flag|--no-flag]\n"));
+  GPR_ASSERT(
+      0 == strcmp(usage,
+                  "Usage: test [--str=string] [--x=int] [--flag|--no-flag]\n"));
   gpr_free(usage);
 
   gpr_cmdline_destroy(cl);
diff --git a/test/core/support/string_test.c b/test/core/support/string_test.c
index 9023d0746b356c4f260e123880f80930576bdee0..f62cbe34358309565da936007b5f184241464195 100644
--- a/test/core/support/string_test.c
+++ b/test/core/support/string_test.c
@@ -71,7 +71,7 @@ static void test_dump(void) {
   expect_dump("\x01", 1, GPR_DUMP_HEX | GPR_DUMP_ASCII, "01 '.'");
   expect_dump("\x01\x02", 2, GPR_DUMP_HEX, "01 02");
   expect_dump("\x01\x23\x45\x67\x89\xab\xcd\xef", 8, GPR_DUMP_HEX,
-                 "01 23 45 67 89 ab cd ef");
+              "01 23 45 67 89 ab cd ef");
   expect_dump("ab", 2, GPR_DUMP_HEX | GPR_DUMP_ASCII, "61 62 'ab'");
 }
 
@@ -221,7 +221,7 @@ static void test_strjoin_sep(void) {
 }
 
 static void test_strsplit(void) {
-  gpr_slice_buffer* parts;
+  gpr_slice_buffer *parts;
   gpr_slice str;
 
   LOG_TEST_NAME("test_strsplit");
diff --git a/test/core/support/thd_test.c b/test/core/support/thd_test.c
index 7232cd9f5ba6a525ea5268fee4bf6c24ac6770f0..faba33c5e8ca1ea8cdd9a62787f55cf2ba8ec6b6 100644
--- a/test/core/support/thd_test.c
+++ b/test/core/support/thd_test.c
@@ -60,7 +60,7 @@ static void thd_body(void *v) {
   gpr_mu_unlock(&t->mu);
 }
 
-static void thd_body_joinable(void *v) { }
+static void thd_body_joinable(void *v) {}
 
 /* Test that we can create a number of threads and wait for them. */
 static void test(void) {
diff --git a/test/core/surface/completion_queue_test.c b/test/core/surface/completion_queue_test.c
index 0741ab920df144095e93828bdfb653960ccf8bb4..a5298a25e06996a956b4042e7e77ceafd10bf054 100644
--- a/test/core/surface/completion_queue_test.c
+++ b/test/core/surface/completion_queue_test.c
@@ -105,8 +105,8 @@ static void test_shutdown_then_next_polling(void) {
 
   cc = grpc_completion_queue_create(NULL);
   grpc_completion_queue_shutdown(cc);
-  event = grpc_completion_queue_next(cc, gpr_inf_past(GPR_CLOCK_REALTIME),
-                                     NULL);
+  event =
+      grpc_completion_queue_next(cc, gpr_inf_past(GPR_CLOCK_REALTIME), NULL);
   GPR_ASSERT(event.type == GRPC_QUEUE_SHUTDOWN);
   grpc_completion_queue_destroy(cc);
 }
@@ -118,8 +118,8 @@ static void test_shutdown_then_next_with_timeout(void) {
 
   cc = grpc_completion_queue_create(NULL);
   grpc_completion_queue_shutdown(cc);
-  event = grpc_completion_queue_next(cc, gpr_inf_future(GPR_CLOCK_REALTIME),
-                                     NULL);
+  event =
+      grpc_completion_queue_next(cc, gpr_inf_future(GPR_CLOCK_REALTIME), NULL);
   GPR_ASSERT(event.type == GRPC_QUEUE_SHUTDOWN);
   grpc_completion_queue_destroy(cc);
 }
diff --git a/test/core/surface/lame_client_test.c b/test/core/surface/lame_client_test.c
index 216eeca8e1b5f0232d2e84247467da7f1f09377d..96434193c95bd5d3f1ec40d45238536da9f855d8 100644
--- a/test/core/surface/lame_client_test.c
+++ b/test/core/surface/lame_client_test.c
@@ -58,13 +58,13 @@ int main(int argc, char **argv) {
 
   grpc_metadata_array_init(&trailing_metadata_recv);
 
-  chan = grpc_lame_client_channel_create("lampoon:national");
+  chan = grpc_lame_client_channel_create(
+      "lampoon:national", GRPC_STATUS_UNKNOWN, "Rpc sent on a lame channel.");
   GPR_ASSERT(chan);
   cq = grpc_completion_queue_create(NULL);
   call = grpc_channel_create_call(chan, NULL, GRPC_PROPAGATE_DEFAULTS, cq,
                                   "/Foo", "anywhere",
-                                  GRPC_TIMEOUT_SECONDS_TO_DEADLINE(100),
-                                  NULL);
+                                  GRPC_TIMEOUT_SECONDS_TO_DEADLINE(100), NULL);
   GPR_ASSERT(call);
   cqv = cq_verifier_create(cq);
 
diff --git a/test/core/transport/chttp2/stream_map_test.c b/test/core/transport/chttp2/stream_map_test.c
index 3c6976ee9dd283e98d27f4c66ca33a970d94722c..b0bb3a89048ced22c5db8fa11de5bce24c2f9118 100644
--- a/test/core/transport/chttp2/stream_map_test.c
+++ b/test/core/transport/chttp2/stream_map_test.c
@@ -93,7 +93,7 @@ static void test_basic_add_find(size_t n) {
   grpc_chttp2_stream_map_init(&map, 8);
   GPR_ASSERT(0 == grpc_chttp2_stream_map_size(&map));
   for (i = 1; i <= n; i++) {
-    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr) i);
+    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr)i);
   }
   GPR_ASSERT(n == grpc_chttp2_stream_map_size(&map));
   GPR_ASSERT(NULL == grpc_chttp2_stream_map_find(&map, 0));
@@ -148,7 +148,7 @@ static void test_delete_evens_sweep(size_t n) {
 
   grpc_chttp2_stream_map_init(&map, 8);
   for (i = 1; i <= n; i++) {
-    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr) i);
+    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr)i);
   }
   for (i = 1; i <= n; i++) {
     if ((i & 1) == 0) {
@@ -170,7 +170,7 @@ static void test_delete_evens_incremental(size_t n) {
 
   grpc_chttp2_stream_map_init(&map, 8);
   for (i = 1; i <= n; i++) {
-    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr) i);
+    grpc_chttp2_stream_map_add(&map, i, (void *)(gpr_uintptr)i);
     if ((i & 1) == 0) {
       grpc_chttp2_stream_map_delete(&map, i);
     }
diff --git a/test/core/util/grpc_profiler.h b/test/core/util/grpc_profiler.h
index 347a1d39d513a01b2f85db915acfe24756474931..88ec6bcb0e9b6266ab1d5f7fe48e2b1883d2c811 100644
--- a/test/core/util/grpc_profiler.h
+++ b/test/core/util/grpc_profiler.h
@@ -45,4 +45,4 @@ void grpc_profiler_stop();
 }
 #endif /*  __cplusplus */
 
-#endif  /* GRPC_TEST_CORE_UTIL_GRPC_PROFILER_H */
+#endif /* GRPC_TEST_CORE_UTIL_GRPC_PROFILER_H */
diff --git a/test/core/util/parse_hexstring.h b/test/core/util/parse_hexstring.h
index 22bbd1756fdc20864ef658ddc2866177d5e21434..ddbfe541c69051da61bb295b779abee002322a7a 100644
--- a/test/core/util/parse_hexstring.h
+++ b/test/core/util/parse_hexstring.h
@@ -38,4 +38,4 @@
 
 gpr_slice parse_hexstring(const char *hexstring);
 
-#endif  /* GRPC_TEST_CORE_UTIL_PARSE_HEXSTRING_H */
+#endif /* GRPC_TEST_CORE_UTIL_PARSE_HEXSTRING_H */
diff --git a/test/core/util/port.h b/test/core/util/port.h
index b516ec5a4833ac158c88fcb1ee04e79291ce36fc..93788bcab242cd81936d4fff591de3e0e5fb0854 100644
--- a/test/core/util/port.h
+++ b/test/core/util/port.h
@@ -49,4 +49,4 @@ int grpc_pick_unused_port_or_die();
 }
 #endif
 
-#endif  /* GRPC_TEST_CORE_UTIL_PORT_H */
+#endif /* GRPC_TEST_CORE_UTIL_PORT_H */
diff --git a/test/core/util/port_posix.c b/test/core/util/port_posix.c
index 9bff18d3117e12248dd4a58ea12a20889aee6cbd..836e62a5412263c22b4878b89fef6dde52f13db5 100644
--- a/test/core/util/port_posix.c
+++ b/test/core/util/port_posix.c
@@ -66,9 +66,7 @@ static int has_port_been_chosen(int port) {
   return 0;
 }
 
-static void free_chosen_ports() {
-  gpr_free(chosen_ports);
-}
+static void free_chosen_ports() { gpr_free(chosen_ports); }
 
 static void chose_port(int port) {
   if (chosen_ports == NULL) {
@@ -180,7 +178,7 @@ static int pick_port_using_server(char *server) {
   gpr_mu_lock(GRPC_POLLSET_MU(&pr.pollset));
   while (pr.port == -1) {
     grpc_pollset_worker worker;
-    grpc_pollset_work(&pr.pollset, &worker,
+    grpc_pollset_work(&pr.pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
                       GRPC_TIMEOUT_SECONDS_TO_DEADLINE(1));
   }
   gpr_mu_unlock(GRPC_POLLSET_MU(&pr.pollset));
@@ -206,7 +204,8 @@ int grpc_pick_unused_port(void) {
 
   /* Type of port to first pick in next iteration */
   int is_tcp = 1;
-  int try = 0;
+  int try
+    = 0;
 
   char *env = gpr_getenv("GRPC_TEST_PORT_SERVER");
   if (env) {
@@ -219,7 +218,8 @@ int grpc_pick_unused_port(void) {
 
   for (;;) {
     int port;
-    try++;
+    try
+      ++;
     if (try == 1) {
       port = getpid() % (65536 - 30000) + 30000;
     } else if (try <= NUM_RANDOM_PORTS_TO_PICK) {
diff --git a/test/core/util/port_windows.c b/test/core/util/port_windows.c
index fc521504356932bb2f9e77f0ab044f05fe5b802d..5b072f805a5e6d64e786443a88b37feec0e98658 100644
--- a/test/core/util/port_windows.c
+++ b/test/core/util/port_windows.c
@@ -63,7 +63,8 @@ static int is_port_available(int *port, int is_tcp) {
   }
 
   /* Reuseaddr lets us start up a server immediately after it exits */
-  if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&one, sizeof(one)) < 0) {
+  if (setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, (const char *)&one,
+                 sizeof(one)) < 0) {
     gpr_log(GPR_ERROR, "setsockopt() failed: %s", strerror(errno));
     closesocket(fd);
     return 0;
@@ -75,14 +76,14 @@ static int is_port_available(int *port, int is_tcp) {
   addr.sin_port = htons(*port);
   if (bind(fd, (struct sockaddr *)&addr, sizeof(addr)) < 0) {
     gpr_log(GPR_DEBUG, "bind(port=%d) failed: %s", *port, strerror(errno));
-	closesocket(fd);
+    closesocket(fd);
     return 0;
   }
 
   /* Get the bound port number */
   if (getsockname(fd, (struct sockaddr *)&addr, &alen) < 0) {
     gpr_log(GPR_ERROR, "getsockname() failed: %s", strerror(errno));
-	closesocket(fd);
+    closesocket(fd);
     return 0;
   }
   GPR_ASSERT(alen <= sizeof(addr));
@@ -113,11 +114,13 @@ int grpc_pick_unused_port(void) {
 
   /* Type of port to first pick in next iteration */
   int is_tcp = 1;
-  int try = 0;
+  int try
+    = 0;
 
   for (;;) {
     int port;
-    try++;
+    try
+      ++;
     if (try == 1) {
       port = _getpid() % (65536 - 30000) + 30000;
     } else if (try <= NUM_RANDOM_PORTS_TO_PICK) {
diff --git a/test/core/util/reconnect_server.c b/test/core/util/reconnect_server.c
index 2a2113338bdb75e565d93d425faa3904ebceb4d5..a06cb50b3a370f2a66bb3fa8682d17df6c12b23a 100644
--- a/test/core/util/reconnect_server.c
+++ b/test/core/util/reconnect_server.c
@@ -134,7 +134,8 @@ void reconnect_server_poll(reconnect_server *server, int seconds) {
       gpr_time_add(gpr_now(GPR_CLOCK_MONOTONIC),
                    gpr_time_from_seconds(seconds, GPR_TIMESPAN));
   gpr_mu_lock(GRPC_POLLSET_MU(&server->pollset));
-  grpc_pollset_work(&server->pollset, &worker, deadline);
+  grpc_pollset_work(&server->pollset, &worker, gpr_now(GPR_CLOCK_MONOTONIC),
+                    deadline);
   gpr_mu_unlock(GRPC_POLLSET_MU(&server->pollset));
 }
 
diff --git a/test/core/util/slice_splitter.h b/test/core/util/slice_splitter.h
index 1ce1c097e2974014d05f18e4f015ca2a744beb05..d030c2cb5553cf672230c1493665a4fe9e84a7cc 100644
--- a/test/core/util/slice_splitter.h
+++ b/test/core/util/slice_splitter.h
@@ -65,4 +65,4 @@ gpr_slice grpc_slice_merge(gpr_slice *slices, size_t nslices);
 
 const char *grpc_slice_split_mode_name(grpc_slice_split_mode mode);
 
-#endif  /* GRPC_TEST_CORE_UTIL_SLICE_SPLITTER_H */
+#endif /* GRPC_TEST_CORE_UTIL_SLICE_SPLITTER_H */
diff --git a/test/core/util/test_config.c b/test/core/util/test_config.c
index cadf88a7c62dbc7e8fa0017a1626858ccad31cf3..685bdff530855c677aa85c9a881e69fe5742d7eb 100644
--- a/test/core/util/test_config.c
+++ b/test/core/util/test_config.c
@@ -78,16 +78,16 @@ void abort_handler(int sig) {
 }
 
 static void install_crash_handler() {
-  SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER) crash_handler);
+  SetUnhandledExceptionFilter((LPTOP_LEVEL_EXCEPTION_FILTER)crash_handler);
   _set_abort_behavior(0, _WRITE_ABORT_MSG);
   _set_abort_behavior(0, _CALL_REPORTFAULT);
   signal(SIGABRT, abort_handler);
 }
 #else
-static void install_crash_handler() { }
+static void install_crash_handler() {}
 #endif
 
-void grpc_test_init(int argc, char **argv) {
+void grpc_test_init(int argc, char** argv) {
   install_crash_handler();
   gpr_log(GPR_DEBUG, "test slowdown: machine=%f build=%f total=%f",
           (double)GRPC_TEST_SLOWDOWN_MACHINE_FACTOR,
diff --git a/test/cpp/client/channel_arguments_test.cc b/test/cpp/client/channel_arguments_test.cc
index 01c56cb795f579c1c2b5589f155bd5fed9a67dea..3d75e7b0e6ae2e4754a3e0eb1b52ad4e351eceda 100644
--- a/test/cpp/client/channel_arguments_test.cc
+++ b/test/cpp/client/channel_arguments_test.cc
@@ -31,7 +31,7 @@
  *
  */
 
-#include <grpc++/channel_arguments.h>
+#include <grpc++/support/channel_arguments.h>
 
 #include <grpc/grpc.h>
 #include <gtest/gtest.h>
diff --git a/test/cpp/common/auth_property_iterator_test.cc b/test/cpp/common/auth_property_iterator_test.cc
index 74b18ced0d54425b0e4037cd576d077afe4a70ab..630c38c7f6767cc677910f77a49b934f75bceb6b 100644
--- a/test/cpp/common/auth_property_iterator_test.cc
+++ b/test/cpp/common/auth_property_iterator_test.cc
@@ -32,7 +32,7 @@
  */
 
 #include <grpc/grpc_security.h>
-#include <grpc++/auth_context.h>
+#include <grpc++/support/auth_context.h>
 #include <gtest/gtest.h>
 #include "src/cpp/common/secure_auth_context.h"
 
@@ -61,11 +61,8 @@ class AuthPropertyIteratorTest : public ::testing::Test {
     EXPECT_EQ(1,
               grpc_auth_context_set_peer_identity_property_name(ctx_, "name"));
   }
-  void TearDown() GRPC_OVERRIDE {
-    grpc_auth_context_release(ctx_);
-  }
+  void TearDown() GRPC_OVERRIDE { grpc_auth_context_release(ctx_); }
   grpc_auth_context* ctx_;
-
 };
 
 TEST_F(AuthPropertyIteratorTest, DefaultCtor) {
@@ -100,7 +97,7 @@ TEST_F(AuthPropertyIteratorTest, GeneralTest) {
 }  // namespace
 }  // namespace grpc
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   ::testing::InitGoogleTest(&argc, argv);
   return RUN_ALL_TESTS();
 }
diff --git a/test/cpp/common/secure_auth_context_test.cc b/test/cpp/common/secure_auth_context_test.cc
index 075d4ce8c9870d71a1edd0e99c1d2bd6714acfc2..c71ef58023f0958e1e692fb6a74c79d62bdb5dd7 100644
--- a/test/cpp/common/secure_auth_context_test.cc
+++ b/test/cpp/common/secure_auth_context_test.cc
@@ -32,7 +32,7 @@
  */
 
 #include <grpc/grpc_security.h>
-#include <grpc++/auth_context.h>
+#include <grpc++/support/auth_context.h>
 #include <gtest/gtest.h>
 #include "src/cpp/common/secure_auth_context.h"
 
@@ -101,7 +101,7 @@ TEST_F(SecureAuthContextTest, Iterators) {
 }  // namespace
 }  // namespace grpc
 
-int main(int argc, char **argv) {
+int main(int argc, char** argv) {
   ::testing::InitGoogleTest(&argc, argv);
   return RUN_ALL_TESTS();
 }
diff --git a/test/cpp/end2end/async_end2end_test.cc b/test/cpp/end2end/async_end2end_test.cc
index f00d19ed6c4661497d8dec4dbdbd91be8ce63d7c..6343810ee93488bc1af3cf1c3311766580e85f5b 100644
--- a/test/cpp/end2end/async_end2end_test.cc
+++ b/test/cpp/end2end/async_end2end_test.cc
@@ -33,13 +33,10 @@
 
 #include <memory>
 
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/echo_duplicate.grpc.pb.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include <grpc++/async_unary_call.h>
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/grpc.h>
+#include <grpc/support/thd.h>
+#include <grpc/support/time.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
@@ -47,14 +44,16 @@
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include <grpc++/time.h>
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/time.h>
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo_duplicate.grpc.pb.h"
+#include "test/cpp/util/echo.grpc.pb.h"
+
+#ifdef GPR_POSIX_SOCKET
+#include "src/core/iomgr/pollset_posix.h"
+#endif
 
 using grpc::cpp::test::util::EchoRequest;
 using grpc::cpp::test::util::EchoResponse;
@@ -65,36 +64,102 @@ namespace testing {
 
 namespace {
 
-void* tag(int i) { return (void*)(gpr_intptr) i; }
+void* tag(int i) { return (void*)(gpr_intptr)i; }
+
+#ifdef GPR_POSIX_SOCKET
+static int assert_non_blocking_poll(struct pollfd* pfds, nfds_t nfds,
+                                    int timeout) {
+  GPR_ASSERT(timeout == 0);
+  return poll(pfds, nfds, timeout);
+}
 
-class Verifier {
+class PollOverride {
  public:
+  PollOverride(grpc_poll_function_type f) {
+    prev_ = grpc_poll_function;
+    grpc_poll_function = f;
+  }
+
+  ~PollOverride() { grpc_poll_function = prev_; }
+
+ private:
+  grpc_poll_function_type prev_;
+};
+
+class PollingCheckRegion : public PollOverride {
+ public:
+  explicit PollingCheckRegion(bool allow_blocking)
+      : PollOverride(allow_blocking ? poll : assert_non_blocking_poll) {}
+};
+#else
+class PollingCheckRegion {
+ public:
+  explicit PollingCheckRegion(bool allow_blocking) {}
+};
+#endif
+
+class Verifier : public PollingCheckRegion {
+ public:
+  explicit Verifier(bool spin) : PollingCheckRegion(!spin), spin_(spin) {}
   Verifier& Expect(int i, bool expect_ok) {
     expectations_[tag(i)] = expect_ok;
     return *this;
   }
-  void Verify(CompletionQueue *cq) {
+  void Verify(CompletionQueue* cq) {
     GPR_ASSERT(!expectations_.empty());
     while (!expectations_.empty()) {
       bool ok;
       void* got_tag;
-      EXPECT_TRUE(cq->Next(&got_tag, &ok));
+      if (spin_) {
+        for (;;) {
+          auto r = cq->AsyncNext(&got_tag, &ok, gpr_time_0(GPR_CLOCK_REALTIME));
+          if (r == CompletionQueue::TIMEOUT) continue;
+          if (r == CompletionQueue::GOT_EVENT) break;
+          gpr_log(GPR_ERROR, "unexpected result from AsyncNext");
+          abort();
+        }
+      } else {
+        EXPECT_TRUE(cq->Next(&got_tag, &ok));
+      }
       auto it = expectations_.find(got_tag);
       EXPECT_TRUE(it != expectations_.end());
       EXPECT_EQ(it->second, ok);
       expectations_.erase(it);
     }
   }
-  void Verify(CompletionQueue *cq, std::chrono::system_clock::time_point deadline) {
+  void Verify(CompletionQueue* cq,
+              std::chrono::system_clock::time_point deadline) {
     if (expectations_.empty()) {
       bool ok;
-      void *got_tag;
-      EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline), CompletionQueue::TIMEOUT);
+      void* got_tag;
+      if (spin_) {
+        while (std::chrono::system_clock::now() < deadline) {
+          EXPECT_EQ(
+              cq->AsyncNext(&got_tag, &ok, gpr_time_0(GPR_CLOCK_REALTIME)),
+              CompletionQueue::TIMEOUT);
+        }
+      } else {
+        EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline),
+                  CompletionQueue::TIMEOUT);
+      }
     } else {
       while (!expectations_.empty()) {
         bool ok;
-        void *got_tag;
-        EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline), CompletionQueue::GOT_EVENT);
+        void* got_tag;
+        if (spin_) {
+          for (;;) {
+            GPR_ASSERT(std::chrono::system_clock::now() < deadline);
+            auto r =
+                cq->AsyncNext(&got_tag, &ok, gpr_time_0(GPR_CLOCK_REALTIME));
+            if (r == CompletionQueue::TIMEOUT) continue;
+            if (r == CompletionQueue::GOT_EVENT) break;
+            gpr_log(GPR_ERROR, "unexpected result from AsyncNext");
+            abort();
+          }
+        } else {
+          EXPECT_EQ(cq->AsyncNext(&got_tag, &ok, deadline),
+                    CompletionQueue::GOT_EVENT);
+        }
         auto it = expectations_.find(got_tag);
         EXPECT_TRUE(it != expectations_.end());
         EXPECT_EQ(it->second, ok);
@@ -105,9 +170,10 @@ class Verifier {
 
  private:
   std::map<void*, bool> expectations_;
+  bool spin_;
 };
 
-class AsyncEnd2endTest : public ::testing::Test {
+class AsyncEnd2endTest : public ::testing::TestWithParam<bool> {
  protected:
   AsyncEnd2endTest() {}
 
@@ -116,7 +182,8 @@ class AsyncEnd2endTest : public ::testing::Test {
     server_address_ << "localhost:" << port;
     // Setup server
     ServerBuilder builder;
-    builder.AddListeningPort(server_address_.str(), grpc::InsecureServerCredentials());
+    builder.AddListeningPort(server_address_.str(),
+                             grpc::InsecureServerCredentials());
     builder.RegisterAsyncService(&service_);
     cq_ = builder.AddCompletionQueue();
     server_ = builder.BuildAndStart();
@@ -132,7 +199,7 @@ class AsyncEnd2endTest : public ::testing::Test {
   }
 
   void ResetStub() {
-    std::shared_ptr<ChannelInterface> channel = CreateChannel(
+    std::shared_ptr<Channel> channel = CreateChannel(
         server_address_.str(), InsecureCredentials(), ChannelArguments());
     stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel));
   }
@@ -153,18 +220,18 @@ class AsyncEnd2endTest : public ::testing::Test {
       std::unique_ptr<ClientAsyncResponseReader<EchoResponse> > response_reader(
           stub_->AsyncEcho(&cli_ctx, send_request, cq_.get()));
 
-      service_.RequestEcho(&srv_ctx, &recv_request, &response_writer,
-                           cq_.get(), cq_.get(), tag(2));
+      service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
+                           cq_.get(), tag(2));
 
-      Verifier().Expect(2, true).Verify(cq_.get());
+      Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
       EXPECT_EQ(send_request.message(), recv_request.message());
 
       send_response.set_message(recv_request.message());
       response_writer.Finish(send_response, Status::OK, tag(3));
-      Verifier().Expect(3, true).Verify(cq_.get());
+      Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
 
       response_reader->Finish(&recv_response, &recv_status, tag(4));
-      Verifier().Expect(4, true).Verify(cq_.get());
+      Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
 
       EXPECT_EQ(send_response.message(), recv_response.message());
       EXPECT_TRUE(recv_status.ok());
@@ -178,18 +245,18 @@ class AsyncEnd2endTest : public ::testing::Test {
   std::ostringstream server_address_;
 };
 
-TEST_F(AsyncEnd2endTest, SimpleRpc) {
+TEST_P(AsyncEnd2endTest, SimpleRpc) {
   ResetStub();
   SendRpc(1);
 }
 
-TEST_F(AsyncEnd2endTest, SequentialRpcs) {
+TEST_P(AsyncEnd2endTest, SequentialRpcs) {
   ResetStub();
   SendRpc(10);
 }
 
 // Test a simple RPC using the async version of Next
-TEST_F(AsyncEnd2endTest, AsyncNextRpc) {
+TEST_P(AsyncEnd2endTest, AsyncNextRpc) {
   ResetStub();
 
   EchoRequest send_request;
@@ -210,28 +277,32 @@ TEST_F(AsyncEnd2endTest, AsyncNextRpc) {
       std::chrono::system_clock::now());
   std::chrono::system_clock::time_point time_limit(
       std::chrono::system_clock::now() + std::chrono::seconds(10));
-  Verifier().Verify(cq_.get(), time_now);
-  Verifier().Verify(cq_.get(), time_now);
+  Verifier(GetParam()).Verify(cq_.get(), time_now);
+  Verifier(GetParam()).Verify(cq_.get(), time_now);
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
 
-  Verifier().Expect(2, true).Verify(cq_.get(), time_limit);
+  Verifier(GetParam()).Expect(2, true).Verify(cq_.get(), time_limit);
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get(), std::chrono::system_clock::time_point::max());
+  Verifier(GetParam())
+      .Expect(3, true)
+      .Verify(cq_.get(), std::chrono::system_clock::time_point::max());
 
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get(), std::chrono::system_clock::time_point::max());
+  Verifier(GetParam())
+      .Expect(4, true)
+      .Verify(cq_.get(), std::chrono::system_clock::time_point::max());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
 }
 
 // Two pings and a final pong.
-TEST_F(AsyncEnd2endTest, SimpleClientStreaming) {
+TEST_P(AsyncEnd2endTest, SimpleClientStreaming) {
   ResetStub();
 
   EchoRequest send_request;
@@ -247,44 +318,44 @@ TEST_F(AsyncEnd2endTest, SimpleClientStreaming) {
   std::unique_ptr<ClientAsyncWriter<EchoRequest> > cli_stream(
       stub_->AsyncRequestStream(&cli_ctx, &recv_response, cq_.get(), tag(1)));
 
-  service_.RequestRequestStream(&srv_ctx, &srv_stream, cq_.get(),
-                                cq_.get(), tag(2));
+  service_.RequestRequestStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
+                                tag(2));
 
-  Verifier().Expect(2, true).Expect(1, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(2, true).Expect(1, true).Verify(cq_.get());
 
   cli_stream->Write(send_request, tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
 
   srv_stream.Read(&recv_request, tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   cli_stream->Write(send_request, tag(5));
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
 
   srv_stream.Read(&recv_request, tag(6));
-  Verifier().Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
 
   EXPECT_EQ(send_request.message(), recv_request.message());
   cli_stream->WritesDone(tag(7));
-  Verifier().Expect(7, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(7, true).Verify(cq_.get());
 
   srv_stream.Read(&recv_request, tag(8));
-  Verifier().Expect(8, false).Verify(cq_.get());
+  Verifier(GetParam()).Expect(8, false).Verify(cq_.get());
 
   send_response.set_message(recv_request.message());
   srv_stream.Finish(send_response, Status::OK, tag(9));
-  Verifier().Expect(9, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(9, true).Verify(cq_.get());
 
   cli_stream->Finish(&recv_status, tag(10));
-  Verifier().Expect(10, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(10, true).Verify(cq_.get());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
 }
 
 // One ping, two pongs.
-TEST_F(AsyncEnd2endTest, SimpleServerStreaming) {
+TEST_P(AsyncEnd2endTest, SimpleServerStreaming) {
   ResetStub();
 
   EchoRequest send_request;
@@ -303,38 +374,38 @@ TEST_F(AsyncEnd2endTest, SimpleServerStreaming) {
   service_.RequestResponseStream(&srv_ctx, &recv_request, &srv_stream,
                                  cq_.get(), cq_.get(), tag(2));
 
-  Verifier().Expect(1, true).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(1, true).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   srv_stream.Write(send_response, tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
 
   cli_stream->Read(&recv_response, tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
 
   srv_stream.Write(send_response, tag(5));
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
 
   cli_stream->Read(&recv_response, tag(6));
-  Verifier().Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
 
   srv_stream.Finish(Status::OK, tag(7));
-  Verifier().Expect(7, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(7, true).Verify(cq_.get());
 
   cli_stream->Read(&recv_response, tag(8));
-  Verifier().Expect(8, false).Verify(cq_.get());
+  Verifier(GetParam()).Expect(8, false).Verify(cq_.get());
 
   cli_stream->Finish(&recv_status, tag(9));
-  Verifier().Expect(9, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(9, true).Verify(cq_.get());
 
   EXPECT_TRUE(recv_status.ok());
 }
 
 // One ping, one pong.
-TEST_F(AsyncEnd2endTest, SimpleBidiStreaming) {
+TEST_P(AsyncEnd2endTest, SimpleBidiStreaming) {
   ResetStub();
 
   EchoRequest send_request;
@@ -350,43 +421,43 @@ TEST_F(AsyncEnd2endTest, SimpleBidiStreaming) {
   std::unique_ptr<ClientAsyncReaderWriter<EchoRequest, EchoResponse> >
       cli_stream(stub_->AsyncBidiStream(&cli_ctx, cq_.get(), tag(1)));
 
-  service_.RequestBidiStream(&srv_ctx, &srv_stream, cq_.get(),
-                             cq_.get(), tag(2));
+  service_.RequestBidiStream(&srv_ctx, &srv_stream, cq_.get(), cq_.get(),
+                             tag(2));
 
-  Verifier().Expect(1, true).Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(1, true).Expect(2, true).Verify(cq_.get());
 
   cli_stream->Write(send_request, tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
 
   srv_stream.Read(&recv_request, tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   srv_stream.Write(send_response, tag(5));
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
 
   cli_stream->Read(&recv_response, tag(6));
-  Verifier().Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
 
   cli_stream->WritesDone(tag(7));
-  Verifier().Expect(7, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(7, true).Verify(cq_.get());
 
   srv_stream.Read(&recv_request, tag(8));
-  Verifier().Expect(8, false).Verify(cq_.get());
+  Verifier(GetParam()).Expect(8, false).Verify(cq_.get());
 
   srv_stream.Finish(Status::OK, tag(9));
-  Verifier().Expect(9, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(9, true).Verify(cq_.get());
 
   cli_stream->Finish(&recv_status, tag(10));
-  Verifier().Expect(10, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(10, true).Verify(cq_.get());
 
   EXPECT_TRUE(recv_status.ok());
 }
 
 // Metadata tests
-TEST_F(AsyncEnd2endTest, ClientInitialMetadataRpc) {
+TEST_P(AsyncEnd2endTest, ClientInitialMetadataRpc) {
   ResetStub();
 
   EchoRequest send_request;
@@ -410,7 +481,7 @@ TEST_F(AsyncEnd2endTest, ClientInitialMetadataRpc) {
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier().Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   auto client_initial_metadata = srv_ctx.client_metadata();
   EXPECT_EQ(meta1.second, client_initial_metadata.find(meta1.first)->second);
@@ -420,16 +491,16 @@ TEST_F(AsyncEnd2endTest, ClientInitialMetadataRpc) {
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(3));
 
-  Verifier().Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
 
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
 }
 
-TEST_F(AsyncEnd2endTest, ServerInitialMetadataRpc) {
+TEST_P(AsyncEnd2endTest, ServerInitialMetadataRpc) {
   ResetStub();
 
   EchoRequest send_request;
@@ -451,15 +522,15 @@ TEST_F(AsyncEnd2endTest, ServerInitialMetadataRpc) {
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier().Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   srv_ctx.AddInitialMetadata(meta1.first, meta1.second);
   srv_ctx.AddInitialMetadata(meta2.first, meta2.second);
   response_writer.SendInitialMetadata(tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
 
   response_reader->ReadInitialMetadata(tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
   auto server_initial_metadata = cli_ctx.GetServerInitialMetadata();
   EXPECT_EQ(meta1.second, server_initial_metadata.find(meta1.first)->second);
   EXPECT_EQ(meta2.second, server_initial_metadata.find(meta2.first)->second);
@@ -467,16 +538,16 @@ TEST_F(AsyncEnd2endTest, ServerInitialMetadataRpc) {
 
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(5));
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
 
   response_reader->Finish(&recv_response, &recv_status, tag(6));
-  Verifier().Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
 }
 
-TEST_F(AsyncEnd2endTest, ServerTrailingMetadataRpc) {
+TEST_P(AsyncEnd2endTest, ServerTrailingMetadataRpc) {
   ResetStub();
 
   EchoRequest send_request;
@@ -498,20 +569,20 @@ TEST_F(AsyncEnd2endTest, ServerTrailingMetadataRpc) {
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier().Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   response_writer.SendInitialMetadata(tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
 
   send_response.set_message(recv_request.message());
   srv_ctx.AddTrailingMetadata(meta1.first, meta1.second);
   srv_ctx.AddTrailingMetadata(meta2.first, meta2.second);
   response_writer.Finish(send_response, Status::OK, tag(4));
 
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
 
   response_reader->Finish(&recv_response, &recv_status, tag(5));
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
   auto server_trailing_metadata = cli_ctx.GetServerTrailingMetadata();
@@ -520,7 +591,7 @@ TEST_F(AsyncEnd2endTest, ServerTrailingMetadataRpc) {
   EXPECT_EQ(static_cast<size_t>(2), server_trailing_metadata.size());
 }
 
-TEST_F(AsyncEnd2endTest, MetadataRpc) {
+TEST_P(AsyncEnd2endTest, MetadataRpc) {
   ResetStub();
 
   EchoRequest send_request;
@@ -537,18 +608,17 @@ TEST_F(AsyncEnd2endTest, MetadataRpc) {
   std::pair<grpc::string, grpc::string> meta1("key1", "val1");
   std::pair<grpc::string, grpc::string> meta2(
       "key2-bin",
-      grpc::string("\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc",
-		   13));
+      grpc::string("\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc", 13));
   std::pair<grpc::string, grpc::string> meta3("key3", "val3");
   std::pair<grpc::string, grpc::string> meta6(
       "key4-bin",
       grpc::string("\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d",
-		   14));
+                   14));
   std::pair<grpc::string, grpc::string> meta5("key5", "val5");
   std::pair<grpc::string, grpc::string> meta4(
       "key6-bin",
-      grpc::string("\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee",
-		   15));
+      grpc::string(
+          "\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee", 15));
 
   cli_ctx.AddMetadata(meta1.first, meta1.second);
   cli_ctx.AddMetadata(meta2.first, meta2.second);
@@ -558,7 +628,7 @@ TEST_F(AsyncEnd2endTest, MetadataRpc) {
 
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
-  Verifier().Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
   auto client_initial_metadata = srv_ctx.client_metadata();
   EXPECT_EQ(meta1.second, client_initial_metadata.find(meta1.first)->second);
@@ -568,9 +638,9 @@ TEST_F(AsyncEnd2endTest, MetadataRpc) {
   srv_ctx.AddInitialMetadata(meta3.first, meta3.second);
   srv_ctx.AddInitialMetadata(meta4.first, meta4.second);
   response_writer.SendInitialMetadata(tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
   response_reader->ReadInitialMetadata(tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
   auto server_initial_metadata = cli_ctx.GetServerInitialMetadata();
   EXPECT_EQ(meta3.second, server_initial_metadata.find(meta3.first)->second);
   EXPECT_EQ(meta4.second, server_initial_metadata.find(meta4.first)->second);
@@ -581,10 +651,10 @@ TEST_F(AsyncEnd2endTest, MetadataRpc) {
   srv_ctx.AddTrailingMetadata(meta6.first, meta6.second);
   response_writer.Finish(send_response, Status::OK, tag(5));
 
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
 
   response_reader->Finish(&recv_response, &recv_status, tag(6));
-  Verifier().Expect(6, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(6, true).Verify(cq_.get());
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
   auto server_trailing_metadata = cli_ctx.GetServerTrailingMetadata();
@@ -594,7 +664,7 @@ TEST_F(AsyncEnd2endTest, MetadataRpc) {
 }
 
 // Server uses AsyncNotifyWhenDone API to check for cancellation
-TEST_F(AsyncEnd2endTest, ServerCheckCancellation) {
+TEST_P(AsyncEnd2endTest, ServerCheckCancellation) {
   ResetStub();
 
   EchoRequest send_request;
@@ -615,21 +685,21 @@ TEST_F(AsyncEnd2endTest, ServerCheckCancellation) {
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
 
-  Verifier().Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   cli_ctx.TryCancel();
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
   EXPECT_TRUE(srv_ctx.IsCancelled());
 
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier().Expect(4, false).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, false).Verify(cq_.get());
 
   EXPECT_EQ(StatusCode::CANCELLED, recv_status.error_code());
 }
 
 // Server uses AsyncNotifyWhenDone API to check for normal finish
-TEST_F(AsyncEnd2endTest, ServerCheckDone) {
+TEST_P(AsyncEnd2endTest, ServerCheckDone) {
   ResetStub();
 
   EchoRequest send_request;
@@ -650,24 +720,24 @@ TEST_F(AsyncEnd2endTest, ServerCheckDone) {
   service_.RequestEcho(&srv_ctx, &recv_request, &response_writer, cq_.get(),
                        cq_.get(), tag(2));
 
-  Verifier().Expect(2, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(2, true).Verify(cq_.get());
   EXPECT_EQ(send_request.message(), recv_request.message());
 
   send_response.set_message(recv_request.message());
   response_writer.Finish(send_response, Status::OK, tag(3));
-  Verifier().Expect(3, true).Verify(cq_.get());
-  Verifier().Expect(5, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(3, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(5, true).Verify(cq_.get());
   EXPECT_FALSE(srv_ctx.IsCancelled());
 
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier().Expect(4, true).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, true).Verify(cq_.get());
 
   EXPECT_EQ(send_response.message(), recv_response.message());
   EXPECT_TRUE(recv_status.ok());
 }
 
-TEST_F(AsyncEnd2endTest, UnimplementedRpc) {
-  std::shared_ptr<ChannelInterface> channel = CreateChannel(
+TEST_P(AsyncEnd2endTest, UnimplementedRpc) {
+  std::shared_ptr<Channel> channel = CreateChannel(
       server_address_.str(), InsecureCredentials(), ChannelArguments());
   std::unique_ptr<grpc::cpp::test::util::UnimplementedService::Stub> stub;
   stub =
@@ -682,12 +752,15 @@ TEST_F(AsyncEnd2endTest, UnimplementedRpc) {
       stub->AsyncUnimplemented(&cli_ctx, send_request, cq_.get()));
 
   response_reader->Finish(&recv_response, &recv_status, tag(4));
-  Verifier().Expect(4, false).Verify(cq_.get());
+  Verifier(GetParam()).Expect(4, false).Verify(cq_.get());
 
   EXPECT_EQ(StatusCode::UNIMPLEMENTED, recv_status.error_code());
   EXPECT_EQ("", recv_status.error_message());
 }
 
+INSTANTIATE_TEST_CASE_P(AsyncEnd2end, AsyncEnd2endTest,
+                        ::testing::Values(false, true));
+
 }  // namespace
 }  // namespace testing
 }  // namespace grpc
diff --git a/test/cpp/end2end/client_crash_test.cc b/test/cpp/end2end/client_crash_test.cc
index 906f124c05815a5b260d1a4c18838dba76d4caf6..3359080cec50c4cd57a223c7b5d2a4cc74fc54cf 100644
--- a/test/cpp/end2end/client_crash_test.cc
+++ b/test/cpp/end2end/client_crash_test.cc
@@ -31,12 +31,10 @@
  *
  */
 
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/echo_duplicate.grpc.pb.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/grpc.h>
+#include <grpc/support/thd.h>
+#include <grpc/support/time.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
@@ -44,15 +42,12 @@
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include <grpc++/time.h>
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/time.h>
-
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo_duplicate.grpc.pb.h"
+#include "test/cpp/util/echo.grpc.pb.h"
 #include "test/cpp/util/subprocess.h"
 
 using grpc::cpp::test::util::EchoRequest;
@@ -77,17 +72,14 @@ class CrashTest : public ::testing::Test {
     addr_stream << "localhost:" << port;
     auto addr = addr_stream.str();
     server_.reset(new SubProcess({
-      g_root + "/client_crash_test_server",
-      "--address=" + addr,
+        g_root + "/client_crash_test_server", "--address=" + addr,
     }));
     GPR_ASSERT(server_);
     return grpc::cpp::test::util::TestService::NewStub(
         CreateChannel(addr, InsecureCredentials(), ChannelArguments()));
   }
 
-  void KillServer() {
-    server_.reset();
-  }
+  void KillServer() { server_.reset(); }
 
  private:
   std::unique_ptr<SubProcess> server_;
diff --git a/test/cpp/end2end/client_crash_test_server.cc b/test/cpp/end2end/client_crash_test_server.cc
index 20808a02409eccbd614fb75211a18129ab2d796f..79a783287417e0fe852567083ef5ec481ed34538 100644
--- a/test/cpp/end2end/client_crash_test_server.cc
+++ b/test/cpp/end2end/client_crash_test_server.cc
@@ -40,7 +40,6 @@
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
 #include "test/cpp/util/echo.grpc.pb.h"
 
 DEFINE_string(address, "", "Address to bind to");
@@ -58,7 +57,8 @@ using namespace gflags;
 namespace grpc {
 namespace testing {
 
-class ServiceImpl GRPC_FINAL : public ::grpc::cpp::test::util::TestService::Service {
+class ServiceImpl GRPC_FINAL
+    : public ::grpc::cpp::test::util::TestService::Service {
   Status BidiStream(ServerContext* context,
                     ServerReaderWriter<EchoResponse, EchoRequest>* stream)
       GRPC_OVERRIDE {
diff --git a/test/cpp/end2end/end2end_test.cc b/test/cpp/end2end/end2end_test.cc
index 3827cdf7307756ee7541211a0fd339711d8f43b2..2728dce07e5646726367c1443eb3cbfac9b84125 100644
--- a/test/cpp/end2end/end2end_test.cc
+++ b/test/cpp/end2end/end2end_test.cc
@@ -34,30 +34,25 @@
 #include <mutex>
 #include <thread>
 
-#include "src/core/security/credentials.h"
-#include "test/core/end2end/data/ssl_test_data.h"
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/echo_duplicate.grpc.pb.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/grpc.h>
+#include <grpc/support/thd.h>
+#include <grpc/support/time.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/dynamic_thread_pool.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include <grpc++/time.h>
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/time.h>
+#include "src/core/security/credentials.h"
+#include "test/core/end2end/data/ssl_test_data.h"
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo_duplicate.grpc.pb.h"
+#include "test/cpp/util/echo.grpc.pb.h"
 
 using grpc::cpp::test::util::EchoRequest;
 using grpc::cpp::test::util::EchoResponse;
@@ -106,7 +101,7 @@ bool CheckIsLocalhost(const grpc::string& addr) {
 
 class Proxy : public ::grpc::cpp::test::util::TestService::Service {
  public:
-  Proxy(std::shared_ptr<ChannelInterface> channel)
+  Proxy(std::shared_ptr<Channel> channel)
       : stub_(grpc::cpp::test::util::TestService::NewStub(channel)) {}
 
   Status Echo(ServerContext* server_context, const EchoRequest* request,
@@ -262,7 +257,7 @@ class TestServiceImplDupPkg
 class End2endTest : public ::testing::TestWithParam<bool> {
  protected:
   End2endTest()
-      : kMaxMessageSize_(8192), special_service_("special"), thread_pool_(2) {}
+      : kMaxMessageSize_(8192), special_service_("special") {}
 
   void SetUp() GRPC_OVERRIDE {
     int port = grpc_pick_unused_port_or_die();
@@ -270,7 +265,7 @@ class End2endTest : public ::testing::TestWithParam<bool> {
     // Setup server
     ServerBuilder builder;
     SslServerCredentialsOptions::PemKeyCertPair pkcp = {test_server1_key,
-      test_server1_cert};
+                                                        test_server1_cert};
     SslServerCredentialsOptions ssl_opts;
     ssl_opts.pem_root_certs = "";
     ssl_opts.pem_key_cert_pairs.push_back(pkcp);
@@ -281,7 +276,6 @@ class End2endTest : public ::testing::TestWithParam<bool> {
     builder.SetMaxMessageSize(
         kMaxMessageSize_);  // For testing max message size.
     builder.RegisterService(&dup_pkg_service_);
-    builder.SetThreadPool(&thread_pool_);
     server_ = builder.BuildAndStart();
   }
 
@@ -295,8 +289,8 @@ class End2endTest : public ::testing::TestWithParam<bool> {
     ChannelArguments args;
     args.SetSslTargetNameOverride("foo.test.google.fr");
     args.SetString(GRPC_ARG_SECONDARY_USER_AGENT_STRING, "end2end_test");
-    channel_ = CreateChannel(server_address_.str(), SslCredentials(ssl_opts),
-                             args);
+    channel_ =
+        CreateChannel(server_address_.str(), SslCredentials(ssl_opts), args);
   }
 
   void ResetStub(bool use_proxy) {
@@ -309,7 +303,6 @@ class End2endTest : public ::testing::TestWithParam<bool> {
       ServerBuilder builder;
       builder.AddListeningPort(proxyaddr.str(), InsecureServerCredentials());
       builder.RegisterService(proxy_service_.get());
-      builder.SetThreadPool(&thread_pool_);
       proxy_server_ = builder.BuildAndStart();
 
       channel_ = CreateChannel(proxyaddr.str(), InsecureCredentials(),
@@ -319,7 +312,7 @@ class End2endTest : public ::testing::TestWithParam<bool> {
     stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel_));
   }
 
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
   std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_;
   std::unique_ptr<Server> server_;
   std::unique_ptr<Server> proxy_server_;
@@ -329,7 +322,6 @@ class End2endTest : public ::testing::TestWithParam<bool> {
   TestServiceImpl service_;
   TestServiceImpl special_service_;
   TestServiceImplDupPkg dup_pkg_service_;
-  DynamicThreadPool thread_pool_;
 };
 
 static void SendRpc(grpc::cpp::test::util::TestService::Stub* stub,
@@ -571,7 +563,7 @@ TEST_F(End2endTest, DiffPackageServices) {
 TEST_F(End2endTest, BadCredentials) {
   std::shared_ptr<Credentials> bad_creds = ServiceAccountCredentials("", "", 1);
   EXPECT_EQ(static_cast<Credentials*>(nullptr), bad_creds.get());
-  std::shared_ptr<ChannelInterface> channel =
+  std::shared_ptr<Channel> channel =
       CreateChannel(server_address_.str(), bad_creds, ChannelArguments());
   std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub(
       grpc::cpp::test::util::TestService::NewStub(channel));
@@ -583,15 +575,15 @@ TEST_F(End2endTest, BadCredentials) {
   Status s = stub->Echo(&context, request, &response);
   EXPECT_EQ("", response.message());
   EXPECT_FALSE(s.ok());
-  EXPECT_EQ(StatusCode::UNKNOWN, s.error_code());
-  EXPECT_EQ("Rpc sent on a lame channel.", s.error_message());
+  EXPECT_EQ(StatusCode::INVALID_ARGUMENT, s.error_code());
+  EXPECT_EQ("Invalid credentials.", s.error_message());
 
   ClientContext context2;
   auto stream = stub->BidiStream(&context2);
   s = stream->Finish();
   EXPECT_FALSE(s.ok());
-  EXPECT_EQ(StatusCode::UNKNOWN, s.error_code());
-  EXPECT_EQ("Rpc sent on a lame channel.", s.error_message());
+  EXPECT_EQ(StatusCode::INVALID_ARGUMENT, s.error_code());
+  EXPECT_EQ("Invalid credentials.", s.error_message());
 }
 
 void CancelRpc(ClientContext* context, int delay_us, TestServiceImpl* service) {
@@ -874,7 +866,7 @@ TEST_P(End2endTest, HugeResponse) {
 
 namespace {
 void ReaderThreadFunc(ClientReaderWriter<EchoRequest, EchoResponse>* stream,
-                      gpr_event *ev) {
+                      gpr_event* ev) {
   EchoResponse resp;
   gpr_event_set(ev, (void*)1);
   while (stream->Read(&resp)) {
@@ -929,8 +921,8 @@ TEST_F(End2endTest, ChannelState) {
   EXPECT_FALSE(ok);
 
   EXPECT_EQ(GRPC_CHANNEL_IDLE, channel_->GetState(true));
-  EXPECT_TRUE(channel_->WaitForStateChange(
-      GRPC_CHANNEL_IDLE, gpr_inf_future(GPR_CLOCK_REALTIME)));
+  EXPECT_TRUE(channel_->WaitForStateChange(GRPC_CHANNEL_IDLE,
+                                           gpr_inf_future(GPR_CLOCK_REALTIME)));
   EXPECT_EQ(GRPC_CHANNEL_CONNECTING, channel_->GetState(false));
 }
 
diff --git a/test/cpp/end2end/generic_end2end_test.cc b/test/cpp/end2end/generic_end2end_test.cc
index b53c32144b1cf9060586540b119ac2fa1d368c57..de7eab8dc2931b5f2a431732abb62bd15bd82196 100644
--- a/test/cpp/end2end/generic_end2end_test.cc
+++ b/test/cpp/end2end/generic_end2end_test.cc
@@ -33,32 +33,26 @@
 
 #include <memory>
 
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/echo.grpc.pb.h"
+#include <grpc/grpc.h>
+#include <grpc/support/thd.h>
+#include <grpc/support/time.h>
 #include <grpc++/impl/proto_utils.h>
-#include <grpc++/async_generic_service.h>
-#include <grpc++/async_unary_call.h>
-#include <grpc++/byte_buffer.h>
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/generic_stub.h>
+#include <grpc++/generic/async_generic_service.h>
+#include <grpc++/generic/generic_stub.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/slice.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include <grpc++/time.h>
+#include <grpc++/support/slice.h>
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/time.h>
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo.grpc.pb.h"
 
 using grpc::cpp::test::util::EchoRequest;
 using grpc::cpp::test::util::EchoResponse;
@@ -68,7 +62,7 @@ namespace grpc {
 namespace testing {
 namespace {
 
-void* tag(int i) { return (void*)(gpr_intptr) i; }
+void* tag(int i) { return (void*)(gpr_intptr)i; }
 
 void verify_ok(CompletionQueue* cq, int i, bool expect_ok) {
   bool ok;
@@ -107,7 +101,8 @@ class GenericEnd2endTest : public ::testing::Test {
     server_address_ << server_host_ << ":" << port;
     // Setup server
     ServerBuilder builder;
-    builder.AddListeningPort(server_address_.str(), InsecureServerCredentials());
+    builder.AddListeningPort(server_address_.str(),
+                             InsecureServerCredentials());
     builder.RegisterAsyncGenericService(&generic_service_);
     srv_cq_ = builder.AddCompletionQueue();
     server_ = builder.BuildAndStart();
@@ -126,7 +121,7 @@ class GenericEnd2endTest : public ::testing::Test {
   }
 
   void ResetStub() {
-    std::shared_ptr<ChannelInterface> channel = CreateChannel(
+    std::shared_ptr<Channel> channel = CreateChannel(
         server_address_.str(), InsecureCredentials(), ChannelArguments());
     generic_stub_.reset(new GenericStub(channel));
   }
diff --git a/test/cpp/end2end/mock_test.cc b/test/cpp/end2end/mock_test.cc
index 32130e24e94d0acb82dca7b9590502fc791fa81f..b2c6dc39a8124ea281d50288e799fa0b15b68921 100644
--- a/test/cpp/end2end/mock_test.cc
+++ b/test/cpp/end2end/mock_test.cc
@@ -33,28 +33,23 @@
 
 #include <thread>
 
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/echo_duplicate.grpc.pb.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/grpc.h>
+#include <grpc/support/thd.h>
+#include <grpc/support/time.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/dynamic_thread_pool.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include <grpc++/time.h>
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/time.h>
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo_duplicate.grpc.pb.h"
+#include "test/cpp/util/echo.grpc.pb.h"
 
 using grpc::cpp::test::util::EchoRequest;
 using grpc::cpp::test::util::EchoResponse;
@@ -234,7 +229,7 @@ class TestServiceImpl : public TestService::Service {
 
 class MockTest : public ::testing::Test {
  protected:
-  MockTest() : thread_pool_(2) {}
+  MockTest() {}
 
   void SetUp() GRPC_OVERRIDE {
     int port = grpc_pick_unused_port_or_die();
@@ -244,14 +239,13 @@ class MockTest : public ::testing::Test {
     builder.AddListeningPort(server_address_.str(),
                              InsecureServerCredentials());
     builder.RegisterService(&service_);
-    builder.SetThreadPool(&thread_pool_);
     server_ = builder.BuildAndStart();
   }
 
   void TearDown() GRPC_OVERRIDE { server_->Shutdown(); }
 
   void ResetStub() {
-    std::shared_ptr<ChannelInterface> channel = CreateChannel(
+    std::shared_ptr<Channel> channel = CreateChannel(
         server_address_.str(), InsecureCredentials(), ChannelArguments());
     stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel));
   }
@@ -260,7 +254,6 @@ class MockTest : public ::testing::Test {
   std::unique_ptr<Server> server_;
   std::ostringstream server_address_;
   TestServiceImpl service_;
-  DynamicThreadPool thread_pool_;
 };
 
 // Do one real rpc and one mocked one
diff --git a/test/cpp/end2end/server_crash_test.cc b/test/cpp/end2end/server_crash_test.cc
index 5c7bb4e653171b057a7f2d1e3a9db1725b7d2de4..1a0f04e22b3e98ccf1f76492c44f4fa3f0a68936 100644
--- a/test/cpp/end2end/server_crash_test.cc
+++ b/test/cpp/end2end/server_crash_test.cc
@@ -31,12 +31,10 @@
  *
  */
 
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/echo_duplicate.grpc.pb.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/grpc.h>
+#include <grpc/support/thd.h>
+#include <grpc/support/time.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
@@ -44,15 +42,12 @@
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include <grpc++/time.h>
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/time.h>
-
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo.grpc.pb.h"
+#include "test/cpp/util/echo_duplicate.grpc.pb.h"
 #include "test/cpp/util/subprocess.h"
 
 using grpc::cpp::test::util::EchoRequest;
diff --git a/test/cpp/end2end/server_crash_test_client.cc b/test/cpp/end2end/server_crash_test_client.cc
index 497ccb4cb2b25440f6fd7d2c74bb7b02761c0398..7ca43a0c5b867916be84d47ea83bd10e9fe39663 100644
--- a/test/cpp/end2end/server_crash_test_client.cc
+++ b/test/cpp/end2end/server_crash_test_client.cc
@@ -37,12 +37,10 @@
 #include <string>
 #include <gflags/gflags.h>
 
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/status.h>
 #include "test/cpp/util/echo.grpc.pb.h"
 
 DEFINE_string(address, "", "Address to connect to");
@@ -60,8 +58,8 @@ using namespace gflags;
 
 int main(int argc, char** argv) {
   ParseCommandLineFlags(&argc, &argv, true);
-  auto stub = grpc::cpp::test::util::TestService::NewStub(
-    grpc::CreateChannel(FLAGS_address, grpc::InsecureCredentials(), grpc::ChannelArguments()));
+  auto stub = grpc::cpp::test::util::TestService::NewStub(grpc::CreateChannel(
+      FLAGS_address, grpc::InsecureCredentials(), grpc::ChannelArguments()));
 
   EchoRequest request;
   EchoResponse response;
diff --git a/test/cpp/end2end/shutdown_test.cc b/test/cpp/end2end/shutdown_test.cc
new file mode 100644
index 0000000000000000000000000000000000000000..e83f86f7ec5c0107d0c3194b8af99a834a98fd77
--- /dev/null
+++ b/test/cpp/end2end/shutdown_test.cc
@@ -0,0 +1,157 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <thread>
+
+#include <grpc/grpc.h>
+#include <grpc/support/sync.h>
+#include <grpc++/channel.h>
+#include <grpc++/client_context.h>
+#include <grpc++/create_channel.h>
+#include <grpc++/credentials.h>
+#include <grpc++/server.h>
+#include <grpc++/server_builder.h>
+#include <grpc++/server_context.h>
+#include <grpc++/server_credentials.h>
+#include <gtest/gtest.h>
+
+#include "src/core/support/env.h"
+#include "test/core/util/test_config.h"
+#include "test/core/util/port.h"
+#include "test/cpp/util/echo.grpc.pb.h"
+
+using grpc::cpp::test::util::EchoRequest;
+using grpc::cpp::test::util::EchoResponse;
+
+namespace grpc {
+namespace testing {
+
+class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service {
+ public:
+  explicit TestServiceImpl(gpr_event* ev) : ev_(ev) {}
+
+  Status Echo(ServerContext* context, const EchoRequest* request,
+              EchoResponse* response) GRPC_OVERRIDE {
+    gpr_event_set(ev_, (void*)1);
+    while (!context->IsCancelled()) {
+    }
+    return Status::OK;
+  }
+
+ private:
+  gpr_event* ev_;
+};
+
+class ShutdownTest : public ::testing::Test {
+ public:
+  ShutdownTest() : shutdown_(false), service_(&ev_) { gpr_event_init(&ev_); }
+
+  void SetUp() GRPC_OVERRIDE {
+    port_ = grpc_pick_unused_port_or_die();
+    server_ = SetUpServer(port_);
+  }
+
+  std::unique_ptr<Server> SetUpServer(const int port) {
+    grpc::string server_address = "localhost:" + to_string(port);
+
+    ServerBuilder builder;
+    builder.AddListeningPort(server_address, InsecureServerCredentials());
+    builder.RegisterService(&service_);
+    std::unique_ptr<Server> server = builder.BuildAndStart();
+    return server;
+  }
+
+  void TearDown() GRPC_OVERRIDE { GPR_ASSERT(shutdown_); }
+
+  void ResetStub() {
+    string target = "dns:localhost:" + to_string(port_);
+    channel_ = CreateChannel(target, InsecureCredentials(), ChannelArguments());
+    stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel_));
+  }
+
+  string to_string(const int number) {
+    std::stringstream strs;
+    strs << number;
+    return strs.str();
+  }
+
+  void SendRequest() {
+    EchoRequest request;
+    EchoResponse response;
+    request.set_message("Hello");
+    ClientContext context;
+    GPR_ASSERT(!shutdown_);
+    Status s = stub_->Echo(&context, request, &response);
+    GPR_ASSERT(shutdown_);
+  }
+
+ protected:
+  std::shared_ptr<Channel> channel_;
+  std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_;
+  std::unique_ptr<Server> server_;
+  bool shutdown_;
+  int port_;
+  gpr_event ev_;
+  TestServiceImpl service_;
+};
+
+// Tests zookeeper state change between two RPCs
+// TODO(ctiller): leaked objects in this test
+TEST_F(ShutdownTest, ShutdownTest) {
+  ResetStub();
+
+  // send the request in a background thread
+  std::thread thr(std::bind(&ShutdownTest::SendRequest, this));
+
+  // wait for the server to get the event
+  gpr_event_wait(&ev_, gpr_inf_future(GPR_CLOCK_MONOTONIC));
+
+  shutdown_ = true;
+
+  // shutdown should trigger cancellation causing everything to shutdown
+  auto deadline =
+      std::chrono::system_clock::now() + std::chrono::microseconds(100);
+  server_->Shutdown(deadline);
+  EXPECT_GE(std::chrono::system_clock::now(), deadline);
+
+  thr.join();
+}
+
+}  // namespace testing
+}  // namespace grpc
+
+int main(int argc, char** argv) {
+  grpc_test_init(argc, argv);
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
diff --git a/test/cpp/end2end/thread_stress_test.cc b/test/cpp/end2end/thread_stress_test.cc
index ff9c945c7c33ea7c5ac093e5700ee716989833ac..8304f04d56ab8cb5f72a7ce08cb8e2b66e595e39 100644
--- a/test/cpp/end2end/thread_stress_test.cc
+++ b/test/cpp/end2end/thread_stress_test.cc
@@ -34,28 +34,23 @@
 #include <mutex>
 #include <thread>
 
-#include "test/core/util/port.h"
-#include "test/core/util/test_config.h"
-#include "test/cpp/util/echo_duplicate.grpc.pb.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/grpc.h>
+#include <grpc/support/thd.h>
+#include <grpc/support/time.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/dynamic_thread_pool.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include <grpc++/time.h>
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
-#include <grpc/support/thd.h>
-#include <grpc/support/time.h>
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo_duplicate.grpc.pb.h"
+#include "test/cpp/util/echo.grpc.pb.h"
 
 using grpc::cpp::test::util::EchoRequest;
 using grpc::cpp::test::util::EchoResponse;
@@ -177,7 +172,7 @@ class TestServiceImplDupPkg
 
 class End2endTest : public ::testing::Test {
  protected:
-  End2endTest() : kMaxMessageSize_(8192), thread_pool_(2) {}
+  End2endTest() : kMaxMessageSize_(8192) {}
 
   void SetUp() GRPC_OVERRIDE {
     int port = grpc_pick_unused_port_or_die();
@@ -190,14 +185,13 @@ class End2endTest : public ::testing::Test {
     builder.SetMaxMessageSize(
         kMaxMessageSize_);  // For testing max message size.
     builder.RegisterService(&dup_pkg_service_);
-    builder.SetThreadPool(&thread_pool_);
     server_ = builder.BuildAndStart();
   }
 
   void TearDown() GRPC_OVERRIDE { server_->Shutdown(); }
 
   void ResetStub() {
-    std::shared_ptr<ChannelInterface> channel = CreateChannel(
+    std::shared_ptr<Channel> channel = CreateChannel(
         server_address_.str(), InsecureCredentials(), ChannelArguments());
     stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel));
   }
@@ -208,7 +202,6 @@ class End2endTest : public ::testing::Test {
   const int kMaxMessageSize_;
   TestServiceImpl service_;
   TestServiceImplDupPkg dup_pkg_service_;
-  DynamicThreadPool thread_pool_;
 };
 
 static void SendRpc(grpc::cpp::test::util::TestService::Stub* stub,
diff --git a/test/cpp/end2end/zookeeper_test.cc b/test/cpp/end2end/zookeeper_test.cc
index a48c497d9a2d270dfe6c373f753aa98753e95b2a..e7d95b1c4625c77210772158fcd6e7e76df49b6b 100644
--- a/test/cpp/end2end/zookeeper_test.cc
+++ b/test/cpp/end2end/zookeeper_test.cc
@@ -31,12 +31,7 @@
  *
  */
 
-#include "test/core/util/test_config.h"
-#include "test/core/util/port.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include "src/core/support/env.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
@@ -44,12 +39,16 @@
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
 #include <gtest/gtest.h>
 #include <grpc/grpc.h>
 #include <grpc/grpc_zookeeper.h>
 #include <zookeeper/zookeeper.h>
 
+#include "test/core/util/test_config.h"
+#include "test/core/util/port.h"
+#include "test/cpp/util/echo.grpc.pb.h"
+#include "src/core/support/env.h"
+
 using grpc::cpp::test::util::EchoRequest;
 using grpc::cpp::test::util::EchoResponse;
 
@@ -89,8 +88,7 @@ class ZookeeperTest : public ::testing::Test {
     RegisterService("/test/1", value);
 
     // Registers service instance /test/2 in zookeeper
-    value =
-        "{\"host\":\"localhost\",\"port\":\"" + to_string(port2) + "\"}";
+    value = "{\"host\":\"localhost\",\"port\":\"" + to_string(port2) + "\"}";
     RegisterService("/test/2", value);
   }
 
@@ -171,7 +169,7 @@ class ZookeeperTest : public ::testing::Test {
     return strs.str();
   }
 
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
   std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_;
   std::unique_ptr<Server> server1_;
   std::unique_ptr<Server> server2_;
@@ -196,7 +194,7 @@ TEST_F(ZookeeperTest, ZookeeperStateChangeTwoRpc) {
   EXPECT_TRUE(s1.ok());
 
   // Zookeeper state changes
-  gpr_log(GPR_DEBUG, "Zookeeper state change"); 
+  gpr_log(GPR_DEBUG, "Zookeeper state change");
   ChangeZookeeperState();
   // Waits for re-resolving addresses
   // TODO(ctiller): RPC will probably fail if not waiting
diff --git a/test/cpp/interop/client.cc b/test/cpp/interop/client.cc
index ebc5cfc85a8602d401d2ed86f03769f081d217e3..cb5232153bb69d5c5e61a6d03faf0f18b46c630c 100644
--- a/test/cpp/interop/client.cc
+++ b/test/cpp/interop/client.cc
@@ -38,10 +38,9 @@
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
 #include <gflags/gflags.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
+
 #include "test/cpp/interop/client_helper.h"
 #include "test/cpp/interop/interop_client.h"
 #include "test/cpp/util/test_config.h"
@@ -56,8 +55,12 @@ DEFINE_string(test_case, "large_unary",
               "Configure different test cases. Valid options are: "
               "empty_unary : empty (zero bytes) request and response; "
               "large_unary : single request and (large) response; "
+              "large_compressed_unary : single request and compressed (large) "
+              "response; "
               "client_streaming : request streaming with single response; "
               "server_streaming : single request with response streaming; "
+              "server_compressed_streaming : single request with compressed "
+              "response streaming; "
               "slow_consumer : single request with response; "
               " streaming with slow client consumer; "
               "half_duplex : half-duplex streaming; "
@@ -70,7 +73,7 @@ DEFINE_string(test_case, "large_unary",
               "jwt_token_creds: large_unary with JWT token auth; "
               "oauth2_auth_token: raw oauth2 access token auth; "
               "per_rpc_creds: raw oauth2 access token on a single rpc; "
-	      "status_code_and_message: verify status code & message; "
+              "status_code_and_message: verify status code & message; "
               "all : all of above.");
 DEFINE_string(default_service_account, "",
               "Email of GCE default service account");
@@ -91,10 +94,14 @@ int main(int argc, char** argv) {
     client.DoEmpty();
   } else if (FLAGS_test_case == "large_unary") {
     client.DoLargeUnary();
+  } else if (FLAGS_test_case == "large_compressed_unary") {
+    client.DoLargeCompressedUnary();
   } else if (FLAGS_test_case == "client_streaming") {
     client.DoRequestStreaming();
   } else if (FLAGS_test_case == "server_streaming") {
     client.DoResponseStreaming();
+  } else if (FLAGS_test_case == "server_compressed_streaming") {
+    client.DoResponseCompressedStreaming();
   } else if (FLAGS_test_case == "slow_consumer") {
     client.DoResponseStreamingWithSlowConsumer();
   } else if (FLAGS_test_case == "half_duplex") {
@@ -129,6 +136,7 @@ int main(int argc, char** argv) {
     client.DoLargeUnary();
     client.DoRequestStreaming();
     client.DoResponseStreaming();
+    client.DoResponseCompressedStreaming();
     client.DoHalfDuplex();
     client.DoPingPong();
     client.DoCancelAfterBegin();
@@ -148,10 +156,11 @@ int main(int argc, char** argv) {
     gpr_log(
         GPR_ERROR,
         "Unsupported test case %s. Valid options are all|empty_unary|"
-        "large_unary|client_streaming|server_streaming|half_duplex|ping_pong|"
-        "cancel_after_begin|cancel_after_first_response|"
-        "timeout_on_sleeping_server|service_account_creds|compute_engine_creds|"
-        "jwt_token_creds|oauth2_auth_token|per_rpc_creds",
+        "large_unary|large_compressed_unary|client_streaming|server_streaming|"
+        "server_compressed_streaming|half_duplex|ping_pong|cancel_after_begin|"
+        "cancel_after_first_response|timeout_on_sleeping_server|"
+        "service_account_creds|compute_engine_creds|jwt_token_creds|"
+        "oauth2_auth_token|per_rpc_creds",
         FLAGS_test_case.c_str());
     ret = 1;
   }
diff --git a/test/cpp/interop/client_helper.cc b/test/cpp/interop/client_helper.cc
index 73d82f7b88883a2afb9e77278a18d57e353bbaac..abc14aeb983e1122a9347110881b6fe32aa379ff 100644
--- a/test/cpp/interop/client_helper.cc
+++ b/test/cpp/interop/client_helper.cc
@@ -33,21 +33,20 @@
 
 #include "test/cpp/interop/client_helper.h"
 
+#include <unistd.h>
+
 #include <fstream>
 #include <memory>
 #include <sstream>
 
-#include <unistd.h>
-
 #include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <gflags/gflags.h>
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/stream.h>
+
 #include "src/cpp/client/secure_credentials.h"
 #include "test/core/security/oauth2_utils.h"
 #include "test/cpp/util/create_test_channel.h"
@@ -100,7 +99,7 @@ grpc::string GetOauth2AccessToken() {
   return access_token;
 }
 
-std::shared_ptr<ChannelInterface> CreateChannelForTestCase(
+std::shared_ptr<Channel> CreateChannelForTestCase(
     const grpc::string& test_case) {
   GPR_ASSERT(FLAGS_server_port);
   const int host_port_buf_size = 1024;
diff --git a/test/cpp/interop/client_helper.h b/test/cpp/interop/client_helper.h
index c4361bb9dec3605a7af83d53df07ef2ab19ae6f7..92d5078f48b672b4bdfbd338e5153b8cfb097995 100644
--- a/test/cpp/interop/client_helper.h
+++ b/test/cpp/interop/client_helper.h
@@ -36,8 +36,9 @@
 
 #include <memory>
 
-#include <grpc++/config.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
+
+#include "src/core/surface/call.h"
 
 namespace grpc {
 namespace testing {
@@ -46,9 +47,27 @@ grpc::string GetServiceAccountJsonKey();
 
 grpc::string GetOauth2AccessToken();
 
-std::shared_ptr<ChannelInterface> CreateChannelForTestCase(
+std::shared_ptr<Channel> CreateChannelForTestCase(
     const grpc::string& test_case);
 
+class InteropClientContextInspector {
+ public:
+  InteropClientContextInspector(const ::grpc::ClientContext& context)
+    : context_(context) {}
+
+  // Inspector methods, able to peek inside ClientContext, follow.
+  grpc_compression_algorithm GetCallCompressionAlgorithm() const {
+    return grpc_call_get_compression_algorithm(context_.call_);
+  }
+
+  gpr_uint32 GetMessageFlags() const {
+    return grpc_call_get_message_flags(context_.call_);
+  }
+
+ private:
+  const ::grpc::ClientContext& context_;
+};
+
 }  // namespace testing
 }  // namespace grpc
 
diff --git a/test/cpp/interop/interop_client.cc b/test/cpp/interop/interop_client.cc
index 066877e0c6d245789383619652a9e1756ab6a652..ca13cdc53decaea4347b6021dacdd1cc221a16c5 100644
--- a/test/cpp/interop/interop_client.cc
+++ b/test/cpp/interop/interop_client.cc
@@ -33,17 +33,20 @@
 
 #include "test/cpp/interop/interop_client.h"
 
-#include <memory>
-
 #include <unistd.h>
 
+#include <fstream>
+#include <memory>
+
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/support/string_util.h>
+#include <grpc/support/useful.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
+
+#include "src/core/transport/stream_op.h"
 #include "test/cpp/interop/client_helper.h"
 #include "test/proto/test.grpc.pb.h"
 #include "test/proto/empty.grpc.pb.h"
@@ -52,6 +55,8 @@
 namespace grpc {
 namespace testing {
 
+static const char* kRandomFile = "test/cpp/interop/rnd.dat";
+
 namespace {
 // The same value is defined by the Java client.
 const std::vector<int> request_stream_sizes = {27182, 8, 1828, 45904};
@@ -61,9 +66,23 @@ const int kResponseMessageSize = 1030;
 const int kReceiveDelayMilliSeconds = 20;
 const int kLargeRequestSize = 271828;
 const int kLargeResponseSize = 314159;
+
+CompressionType GetInteropCompressionTypeFromCompressionAlgorithm(
+    grpc_compression_algorithm algorithm) {
+  switch (algorithm) {
+    case GRPC_COMPRESS_NONE:
+      return CompressionType::NONE;
+    case GRPC_COMPRESS_GZIP:
+      return CompressionType::GZIP;
+    case GRPC_COMPRESS_DEFLATE:
+      return CompressionType::DEFLATE;
+    default:
+      GPR_ASSERT(false);
+  }
+}
 }  // namespace
 
-InteropClient::InteropClient(std::shared_ptr<ChannelInterface> channel)
+InteropClient::InteropClient(std::shared_ptr<Channel> channel)
     : channel_(channel) {}
 
 void InteropClient::AssertOkOrPrintErrorStatus(const Status& s) {
@@ -95,17 +114,48 @@ void InteropClient::PerformLargeUnary(SimpleRequest* request,
   std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
 
   ClientContext context;
-  request->set_response_type(PayloadType::COMPRESSABLE);
+  InteropClientContextInspector inspector(context);
+  // If the request doesn't already specify the response type, default to
+  // COMPRESSABLE.
   request->set_response_size(kLargeResponseSize);
   grpc::string payload(kLargeRequestSize, '\0');
   request->mutable_payload()->set_body(payload.c_str(), kLargeRequestSize);
 
   Status s = stub->UnaryCall(&context, *request, response);
 
+  // Compression related checks.
+  GPR_ASSERT(request->response_compression() ==
+             GetInteropCompressionTypeFromCompressionAlgorithm(
+                 inspector.GetCallCompressionAlgorithm()));
+  if (request->response_compression() == NONE) {
+    GPR_ASSERT(!(inspector.GetMessageFlags() & GRPC_WRITE_INTERNAL_COMPRESS));
+  } else if (request->response_type() == PayloadType::COMPRESSABLE) {
+    // requested compression and compressable response => results should always
+    // be compressed.
+    GPR_ASSERT(inspector.GetMessageFlags() & GRPC_WRITE_INTERNAL_COMPRESS);
+  }
+
   AssertOkOrPrintErrorStatus(s);
-  GPR_ASSERT(response->payload().type() == PayloadType::COMPRESSABLE);
-  GPR_ASSERT(response->payload().body() ==
-             grpc::string(kLargeResponseSize, '\0'));
+
+  // Payload related checks.
+  if (request->response_type() != PayloadType::RANDOM) {
+    GPR_ASSERT(response->payload().type() == request->response_type());
+  }
+  switch (response->payload().type()) {
+    case PayloadType::COMPRESSABLE:
+      GPR_ASSERT(response->payload().body() ==
+                 grpc::string(kLargeResponseSize, '\0'));
+      break;
+    case PayloadType::UNCOMPRESSABLE: {
+      std::ifstream rnd_file(kRandomFile);
+      GPR_ASSERT(rnd_file.good());
+      for (int i = 0; i < kLargeResponseSize; i++) {
+        GPR_ASSERT(response->payload().body()[i] == (char)rnd_file.get());
+      }
+    } break;
+    default:
+      GPR_ASSERT(false);
+  }
 }
 
 void InteropClient::DoComputeEngineCreds(
@@ -117,6 +167,7 @@ void InteropClient::DoComputeEngineCreds(
   SimpleResponse response;
   request.set_fill_username(true);
   request.set_fill_oauth_scope(true);
+  request.set_response_type(PayloadType::COMPRESSABLE);
   PerformLargeUnary(&request, &response);
   gpr_log(GPR_INFO, "Got username %s", response.username().c_str());
   gpr_log(GPR_INFO, "Got oauth_scope %s", response.oauth_scope().c_str());
@@ -136,6 +187,7 @@ void InteropClient::DoServiceAccountCreds(const grpc::string& username,
   SimpleResponse response;
   request.set_fill_username(true);
   request.set_fill_oauth_scope(true);
+  request.set_response_type(PayloadType::COMPRESSABLE);
   PerformLargeUnary(&request, &response);
   GPR_ASSERT(!response.username().empty());
   GPR_ASSERT(!response.oauth_scope().empty());
@@ -199,6 +251,7 @@ void InteropClient::DoJwtTokenCreds(const grpc::string& username) {
   SimpleRequest request;
   SimpleResponse response;
   request.set_fill_username(true);
+  request.set_response_type(PayloadType::COMPRESSABLE);
   PerformLargeUnary(&request, &response);
   GPR_ASSERT(!response.username().empty());
   GPR_ASSERT(username.find(response.username()) != grpc::string::npos);
@@ -209,10 +262,33 @@ void InteropClient::DoLargeUnary() {
   gpr_log(GPR_INFO, "Sending a large unary rpc...");
   SimpleRequest request;
   SimpleResponse response;
+  request.set_response_type(PayloadType::COMPRESSABLE);
   PerformLargeUnary(&request, &response);
   gpr_log(GPR_INFO, "Large unary done.");
 }
 
+void InteropClient::DoLargeCompressedUnary() {
+  const CompressionType compression_types[] = {NONE, GZIP, DEFLATE};
+  const PayloadType payload_types[] = {COMPRESSABLE, UNCOMPRESSABLE, RANDOM};
+  for (size_t i = 0; i < GPR_ARRAY_SIZE(payload_types); i++) {
+    for (size_t j = 0; j < GPR_ARRAY_SIZE(compression_types); j++) {
+      char* log_suffix;
+      gpr_asprintf(&log_suffix, "(compression=%s; payload=%s)",
+                   CompressionType_Name(compression_types[j]).c_str(),
+                   PayloadType_Name(payload_types[i]).c_str());
+
+      gpr_log(GPR_INFO, "Sending a large compressed unary rpc %s.", log_suffix);
+      SimpleRequest request;
+      SimpleResponse response;
+      request.set_response_type(payload_types[i]);
+      request.set_response_compression(compression_types[j]);
+      PerformLargeUnary(&request, &response);
+      gpr_log(GPR_INFO, "Large compressed unary done %s.", log_suffix);
+      gpr_free(log_suffix);
+    }
+  }
+}
+
 void InteropClient::DoRequestStreaming() {
   gpr_log(GPR_INFO, "Sending request steaming rpc ...");
   std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
@@ -261,11 +337,90 @@ void InteropClient::DoResponseStreaming() {
   }
   GPR_ASSERT(response_stream_sizes.size() == i);
   Status s = stream->Finish();
-
   AssertOkOrPrintErrorStatus(s);
   gpr_log(GPR_INFO, "Response streaming done.");
 }
 
+void InteropClient::DoResponseCompressedStreaming() {
+  std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
+
+  const CompressionType compression_types[] = {NONE, GZIP, DEFLATE};
+  const PayloadType payload_types[] = {COMPRESSABLE, UNCOMPRESSABLE, RANDOM};
+  for (size_t i = 0; i < GPR_ARRAY_SIZE(payload_types); i++) {
+    for (size_t j = 0; j < GPR_ARRAY_SIZE(compression_types); j++) {
+      ClientContext context;
+      InteropClientContextInspector inspector(context);
+      StreamingOutputCallRequest request;
+
+      char* log_suffix;
+      gpr_asprintf(&log_suffix, "(compression=%s; payload=%s)",
+                   CompressionType_Name(compression_types[j]).c_str(),
+                   PayloadType_Name(payload_types[i]).c_str());
+
+      gpr_log(GPR_INFO, "Receiving response steaming rpc %s.", log_suffix);
+
+      request.set_response_type(payload_types[i]);
+      request.set_response_compression(compression_types[j]);
+
+      for (size_t k = 0; k < response_stream_sizes.size(); ++k) {
+        ResponseParameters* response_parameter =
+            request.add_response_parameters();
+        response_parameter->set_size(response_stream_sizes[k]);
+      }
+      StreamingOutputCallResponse response;
+
+      std::unique_ptr<ClientReader<StreamingOutputCallResponse>> stream(
+          stub->StreamingOutputCall(&context, request));
+
+      size_t k = 0;
+      while (stream->Read(&response)) {
+        // Payload related checks.
+        if (request.response_type() != PayloadType::RANDOM) {
+          GPR_ASSERT(response.payload().type() == request.response_type());
+        }
+        switch (response.payload().type()) {
+          case PayloadType::COMPRESSABLE:
+            GPR_ASSERT(response.payload().body() ==
+                       grpc::string(response_stream_sizes[k], '\0'));
+            break;
+          case PayloadType::UNCOMPRESSABLE: {
+            std::ifstream rnd_file(kRandomFile);
+            GPR_ASSERT(rnd_file.good());
+            for (int n = 0; n < response_stream_sizes[k]; n++) {
+              GPR_ASSERT(response.payload().body()[n] == (char)rnd_file.get());
+            }
+          } break;
+          default:
+            GPR_ASSERT(false);
+        }
+
+        // Compression related checks.
+        GPR_ASSERT(request.response_compression() ==
+                   GetInteropCompressionTypeFromCompressionAlgorithm(
+                       inspector.GetCallCompressionAlgorithm()));
+        if (request.response_compression() == NONE) {
+          GPR_ASSERT(
+              !(inspector.GetMessageFlags() & GRPC_WRITE_INTERNAL_COMPRESS));
+        } else if (request.response_type() == PayloadType::COMPRESSABLE) {
+          // requested compression and compressable response => results should
+          // always be compressed.
+          GPR_ASSERT(inspector.GetMessageFlags() &
+                     GRPC_WRITE_INTERNAL_COMPRESS);
+        }
+
+        ++k;
+      }
+
+      GPR_ASSERT(response_stream_sizes.size() == k);
+      Status s = stream->Finish();
+
+      AssertOkOrPrintErrorStatus(s);
+      gpr_log(GPR_INFO, "Response streaming done %s.", log_suffix);
+      gpr_free(log_suffix);
+    }
+  }
+}
+
 void InteropClient::DoResponseStreamingWithSlowConsumer() {
   gpr_log(GPR_INFO, "Receiving response steaming rpc with slow consumer ...");
   std::unique_ptr<TestService::Stub> stub(TestService::NewStub(channel_));
@@ -427,7 +582,7 @@ void InteropClient::DoStatusWithMessage() {
   ClientContext context;
   SimpleRequest request;
   SimpleResponse response;
-  EchoStatus *requested_status = request.mutable_response_status();
+  EchoStatus* requested_status = request.mutable_response_status();
   requested_status->set_code(grpc::StatusCode::UNKNOWN);
   grpc::string test_msg = "This is a test message";
   requested_status->set_message(test_msg);
diff --git a/test/cpp/interop/interop_client.h b/test/cpp/interop/interop_client.h
index 6e26c49e5da1d810161318657aac70a36832e1ea..5e26cc82e6685d95c18015f5dd49d6c187acfb5c 100644
--- a/test/cpp/interop/interop_client.h
+++ b/test/cpp/interop/interop_client.h
@@ -33,11 +33,11 @@
 
 #ifndef GRPC_TEST_CPP_INTEROP_INTEROP_CLIENT_H
 #define GRPC_TEST_CPP_INTEROP_INTEROP_CLIENT_H
+
 #include <memory>
 
 #include <grpc/grpc.h>
-#include <grpc++/channel_interface.h>
-#include <grpc++/status.h>
+#include <grpc++/channel.h>
 #include "test/proto/messages.grpc.pb.h"
 
 namespace grpc {
@@ -45,17 +45,19 @@ namespace testing {
 
 class InteropClient {
  public:
-  explicit InteropClient(std::shared_ptr<ChannelInterface> channel);
+  explicit InteropClient(std::shared_ptr<Channel> channel);
   ~InteropClient() {}
 
-  void Reset(std::shared_ptr<ChannelInterface> channel) { channel_ = channel; }
+  void Reset(std::shared_ptr<Channel> channel) { channel_ = channel; }
 
   void DoEmpty();
   void DoLargeUnary();
+  void DoLargeCompressedUnary();
   void DoPingPong();
   void DoHalfDuplex();
   void DoRequestStreaming();
   void DoResponseStreaming();
+  void DoResponseCompressedStreaming();
   void DoResponseStreamingWithSlowConsumer();
   void DoCancelAfterBegin();
   void DoCancelAfterFirstResponse();
@@ -80,7 +82,7 @@ class InteropClient {
   void PerformLargeUnary(SimpleRequest* request, SimpleResponse* response);
   void AssertOkOrPrintErrorStatus(const Status& s);
 
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
 };
 
 }  // namespace testing
diff --git a/test/cpp/interop/interop_test.cc b/test/cpp/interop/interop_test.cc
index aac6e56b892c5c5a676a05ad3af7606398be6a2a..f01b032e95b6126a7f40fdadfb0e12a46ddb6c51 100644
--- a/test/cpp/interop/interop_test.cc
+++ b/test/cpp/interop/interop_test.cc
@@ -44,17 +44,18 @@
 #include <sys/types.h>
 #include <sys/wait.h>
 
-extern "C" {
-#include "src/core/iomgr/socket_utils_posix.h"
-#include "src/core/support/string.h"
-}
-
 #include <grpc/support/alloc.h>
 #include <grpc/support/host_port.h>
 #include <grpc/support/log.h>
 #include <grpc/support/string_util.h>
 #include "test/core/util/port.h"
 
+extern "C" {
+#include "src/core/iomgr/socket_utils_posix.h"
+#include "src/core/support/string.h"
+}
+
+
 int test_client(const char* root, const char* host, int port) {
   int status;
   pid_t cli;
diff --git a/test/cpp/interop/reconnect_interop_client.cc b/test/cpp/interop/reconnect_interop_client.cc
index 65f098050e667748d6a4e44b146ea2ddc238f6de..d332dcad844eef6042ce17bff45087e4a7728446 100644
--- a/test/cpp/interop/reconnect_interop_client.cc
+++ b/test/cpp/interop/reconnect_interop_client.cc
@@ -37,9 +37,8 @@
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
 #include <gflags/gflags.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
-#include <grpc++/status.h>
 #include "test/cpp/util/create_test_channel.h"
 #include "test/cpp/util/test_config.h"
 #include "test/proto/test.grpc.pb.h"
@@ -50,7 +49,7 @@ DEFINE_int32(server_control_port, 0, "Server port for control rpcs.");
 DEFINE_int32(server_retry_port, 0, "Server port for testing reconnection.");
 DEFINE_string(server_host, "127.0.0.1", "Server host to connect to");
 
-using grpc::ChannelInterface;
+using grpc::Channel;
 using grpc::ClientContext;
 using grpc::CreateTestChannel;
 using grpc::Status;
@@ -78,7 +77,7 @@ int main(int argc, char** argv) {
   gpr_log(GPR_INFO, "Starting connections with retries.");
   server_address.str("");
   server_address << FLAGS_server_host << ':' << FLAGS_server_retry_port;
-  std::shared_ptr<ChannelInterface> retry_channel =
+  std::shared_ptr<Channel> retry_channel =
       CreateTestChannel(server_address.str(), true);
   // About 13 retries.
   const int kDeadlineSeconds = 540;
diff --git a/test/cpp/interop/reconnect_interop_server.cc b/test/cpp/interop/reconnect_interop_server.cc
index 8bc51aa52e4fea2744eb3ba714990b0d82706309..d4f171b1d0a98df01cceab8b5b248fe7253ef642 100644
--- a/test/cpp/interop/reconnect_interop_server.cc
+++ b/test/cpp/interop/reconnect_interop_server.cc
@@ -31,23 +31,22 @@
  *
  */
 
+#include <signal.h>
+#include <unistd.h>
+
 #include <condition_variable>
 #include <memory>
 #include <mutex>
 #include <sstream>
 
-#include <signal.h>
-#include <unistd.h>
-
 #include <gflags/gflags.h>
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
-#include <grpc++/config.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
+
 #include "test/core/util/reconnect_server.h"
 #include "test/cpp/util/test_config.h"
 #include "test/proto/test.grpc.pb.h"
diff --git a/test/cpp/interop/rnd.dat b/test/cpp/interop/rnd.dat
new file mode 100644
index 0000000000000000000000000000000000000000..8c7f38f9e0e01b33798cbe743bd5f873b6e0a1af
Binary files /dev/null and b/test/cpp/interop/rnd.dat differ
diff --git a/test/cpp/interop/server.cc b/test/cpp/interop/server.cc
index 4e809ed902b92ccafabeef8111813b835363deaf..4921fde9fad1a7046de37fe1fe29cd299330e6c6 100644
--- a/test/cpp/interop/server.cc
+++ b/test/cpp/interop/server.cc
@@ -31,28 +31,28 @@
  *
  */
 
+#include <signal.h>
+#include <unistd.h>
+
+#include <fstream>
 #include <memory>
 #include <sstream>
 #include <thread>
 
-#include <signal.h>
-#include <unistd.h>
-
 #include <gflags/gflags.h>
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
-#include <grpc++/config.h>
+#include <grpc/support/useful.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
+
+#include "test/cpp/interop/server_helper.h"
+#include "test/cpp/util/test_config.h"
 #include "test/proto/test.grpc.pb.h"
 #include "test/proto/empty.grpc.pb.h"
 #include "test/proto/messages.grpc.pb.h"
-#include "test/cpp/interop/server_helper.h"
-#include "test/cpp/util/test_config.h"
 
 DEFINE_bool(enable_ssl, false, "Whether to use ssl/tls.");
 DEFINE_int32(port, 0, "Server port.");
@@ -65,6 +65,7 @@ using grpc::ServerReader;
 using grpc::ServerReaderWriter;
 using grpc::ServerWriter;
 using grpc::SslServerCredentialsOptions;
+using grpc::testing::InteropServerContextInspector;
 using grpc::testing::Payload;
 using grpc::testing::PayloadType;
 using grpc::testing::SimpleRequest;
@@ -77,19 +78,54 @@ using grpc::testing::TestService;
 using grpc::Status;
 
 static bool got_sigint = false;
+static const char* kRandomFile = "test/cpp/interop/rnd.dat";
 
 bool SetPayload(PayloadType type, int size, Payload* payload) {
-  PayloadType response_type = type;
-  // TODO(yangg): Support UNCOMPRESSABLE payload.
-  if (type != PayloadType::COMPRESSABLE) {
-    return false;
+  PayloadType response_type;
+  if (type == PayloadType::RANDOM) {
+    response_type =
+        rand() & 0x1 ? PayloadType::COMPRESSABLE : PayloadType::UNCOMPRESSABLE;
+  } else {
+    response_type = type;
   }
   payload->set_type(response_type);
-  std::unique_ptr<char[]> body(new char[size]());
-  payload->set_body(body.get(), size);
+  switch (response_type) {
+    case PayloadType::COMPRESSABLE: {
+      std::unique_ptr<char[]> body(new char[size]());
+      payload->set_body(body.get(), size);
+    } break;
+    case PayloadType::UNCOMPRESSABLE: {
+      std::unique_ptr<char[]> body(new char[size]());
+      std::ifstream rnd_file(kRandomFile);
+      GPR_ASSERT(rnd_file.good());
+      rnd_file.read(body.get(), size);
+      GPR_ASSERT(!rnd_file.eof());  // Requested more rnd bytes than available
+      payload->set_body(body.get(), size);
+    } break;
+    default:
+      GPR_ASSERT(false);
+  }
   return true;
 }
 
+template <typename RequestType>
+void SetResponseCompression(ServerContext* context,
+                            const RequestType& request) {
+  switch (request.response_compression()) {
+    case grpc::testing::NONE:
+      context->set_compression_algorithm(GRPC_COMPRESS_NONE);
+      break;
+    case grpc::testing::GZIP:
+      context->set_compression_algorithm(GRPC_COMPRESS_GZIP);
+      break;
+    case grpc::testing::DEFLATE:
+      context->set_compression_algorithm(GRPC_COMPRESS_DEFLATE);
+      break;
+    default:
+      abort();
+  }
+}
+
 class TestServiceImpl : public TestService::Service {
  public:
   Status EmptyCall(ServerContext* context, const grpc::testing::Empty* request,
@@ -99,6 +135,7 @@ class TestServiceImpl : public TestService::Service {
 
   Status UnaryCall(ServerContext* context, const SimpleRequest* request,
                    SimpleResponse* response) {
+    SetResponseCompression(context, *request);
     if (request->response_size() > 0) {
       if (!SetPayload(request->response_type(), request->response_size(),
                       response->mutable_payload())) {
@@ -107,9 +144,9 @@ class TestServiceImpl : public TestService::Service {
     }
 
     if (request->has_response_status()) {
-      return Status(static_cast<grpc::StatusCode>
-		    (request->response_status().code()),
-		    request->response_status().message()); 
+      return Status(
+          static_cast<grpc::StatusCode>(request->response_status().code()),
+          request->response_status().message());
     }
 
     return Status::OK;
@@ -118,13 +155,16 @@ class TestServiceImpl : public TestService::Service {
   Status StreamingOutputCall(
       ServerContext* context, const StreamingOutputCallRequest* request,
       ServerWriter<StreamingOutputCallResponse>* writer) {
+    SetResponseCompression(context, *request);
     StreamingOutputCallResponse response;
     bool write_success = true;
-    response.mutable_payload()->set_type(request->response_type());
     for (int i = 0; write_success && i < request->response_parameters_size();
          i++) {
-      response.mutable_payload()->set_body(
-          grpc::string(request->response_parameters(i).size(), '\0'));
+      if (!SetPayload(request->response_type(),
+                      request->response_parameters(i).size(),
+                      response.mutable_payload())) {
+        return Status(grpc::StatusCode::INTERNAL, "Error creating payload.");
+      }
       write_success = writer->Write(response);
     }
     if (write_success) {
@@ -156,6 +196,7 @@ class TestServiceImpl : public TestService::Service {
     StreamingOutputCallResponse response;
     bool write_success = true;
     while (write_success && stream->Read(&request)) {
+      SetResponseCompression(context, request);
       if (request.response_parameters_size() != 0) {
         response.mutable_payload()->set_type(request.payload().type());
         response.mutable_payload()->set_body(
diff --git a/test/cpp/interop/server_helper.cc b/test/cpp/interop/server_helper.cc
index 30a78ffddf9ca0f84a0af6cc8c3a72ee4c15f5eb..e897f4ebf003106e6d6f4924cefe85d08c012951 100644
--- a/test/cpp/interop/server_helper.cc
+++ b/test/cpp/interop/server_helper.cc
@@ -36,10 +36,11 @@
 #include <memory>
 
 #include <gflags/gflags.h>
-#include "test/core/end2end/data/ssl_test_data.h"
-#include <grpc++/config.h>
 #include <grpc++/server_credentials.h>
 
+#include "src/core/surface/call.h"
+#include "test/core/end2end/data/ssl_test_data.h"
+
 DECLARE_bool(enable_ssl);
 
 namespace grpc {
@@ -58,16 +59,25 @@ std::shared_ptr<ServerCredentials> CreateInteropServerCredentials() {
   }
 }
 
-InteropContextInspector::InteropContextInspector(
+InteropServerContextInspector::InteropServerContextInspector(
     const ::grpc::ServerContext& context)
     : context_(context) {}
 
-std::shared_ptr<const AuthContext> InteropContextInspector::GetAuthContext()
-    const {
+grpc_compression_algorithm
+InteropServerContextInspector::GetCallCompressionAlgorithm() const {
+  return grpc_call_get_compression_algorithm(context_.call_);
+}
+
+gpr_uint32 InteropServerContextInspector::GetEncodingsAcceptedByClient() const {
+  return grpc_call_get_encodings_accepted_by_peer(context_.call_);
+}
+
+std::shared_ptr<const AuthContext>
+InteropServerContextInspector::GetAuthContext() const {
   return context_.auth_context();
 }
 
-bool InteropContextInspector::IsCancelled() const {
+bool InteropServerContextInspector::IsCancelled() const {
   return context_.IsCancelled();
 }
 
diff --git a/test/cpp/interop/server_helper.h b/test/cpp/interop/server_helper.h
index ce977b47058123b93e213cc3d5fbae96ead60fbc..7b6b12cd4d85437f144c0b5bc28a3a3c1d180956 100644
--- a/test/cpp/interop/server_helper.h
+++ b/test/cpp/interop/server_helper.h
@@ -36,6 +36,7 @@
 
 #include <memory>
 
+#include <grpc/compression.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
 
@@ -44,13 +45,15 @@ namespace testing {
 
 std::shared_ptr<ServerCredentials> CreateInteropServerCredentials();
 
-class InteropContextInspector {
+class InteropServerContextInspector {
  public:
-  InteropContextInspector(const ::grpc::ServerContext& context);
+  InteropServerContextInspector(const ::grpc::ServerContext& context);
 
   // Inspector methods, able to peek inside ServerContext, follow.
   std::shared_ptr<const AuthContext> GetAuthContext() const;
   bool IsCancelled() const;
+  grpc_compression_algorithm GetCallCompressionAlgorithm() const;
+  gpr_uint32 GetEncodingsAcceptedByClient() const;
 
  private:
   const ::grpc::ServerContext& context_;
diff --git a/test/cpp/qps/client.h b/test/cpp/qps/client.h
index 1c4f46328f9a79061e67b71f25e22d11d3bfbca2..0f95cfea38d14a4d834f47287507f62caf93f3b2 100644
--- a/test/cpp/qps/client.h
+++ b/test/cpp/qps/client.h
@@ -34,14 +34,14 @@
 #ifndef TEST_QPS_CLIENT_H
 #define TEST_QPS_CLIENT_H
 
+#include <condition_variable>
+#include <mutex>
+
 #include "test/cpp/qps/histogram.h"
 #include "test/cpp/qps/interarrival.h"
 #include "test/cpp/qps/timer.h"
 #include "test/cpp/qps/qpstest.grpc.pb.h"
-
-#include <condition_variable>
-#include <mutex>
-#include <grpc++/config.h>
+#include "test/cpp/util/create_test_channel.h"
 
 namespace grpc {
 
@@ -125,11 +125,11 @@ class Client {
       channel_ = CreateTestChannel(target, config.enable_ssl());
       stub_ = TestService::NewStub(channel_);
     }
-    ChannelInterface* get_channel() { return channel_.get(); }
+    Channel* get_channel() { return channel_.get(); }
     TestService::Stub* get_stub() { return stub_.get(); }
 
    private:
-    std::shared_ptr<ChannelInterface> channel_;
+    std::shared_ptr<Channel> channel_;
     std::unique_ptr<TestService::Stub> stub_;
   };
   std::vector<ClientChannelInfo> channels_;
diff --git a/test/cpp/qps/client_async.cc b/test/cpp/qps/client_async.cc
index a337610cbf7769fe589128e41fea125285d05167..f779e4a5776c2d61cffc4c74a18e8bcfbe72023a 100644
--- a/test/cpp/qps/client_async.cc
+++ b/test/cpp/qps/client_async.cc
@@ -46,14 +46,12 @@
 #include <grpc/support/histogram.h>
 #include <grpc/support/log.h>
 #include <gflags/gflags.h>
-#include <grpc++/async_unary_call.h>
 #include <grpc++/client_context.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-#include "test/cpp/util/create_test_channel.h"
+
 #include "test/cpp/qps/qpstest.grpc.pb.h"
 #include "test/cpp/qps/timer.h"
 #include "test/cpp/qps/client.h"
+#include "test/cpp/util/create_test_channel.h"
 
 namespace grpc {
 namespace testing {
diff --git a/test/cpp/qps/client_sync.cc b/test/cpp/qps/client_sync.cc
index db5416a707e37a7d3a66e9e3fe1a0e64dde41e76..123dca6600749b8d72f838c9f63908d469cfb5f5 100644
--- a/test/cpp/qps/client_sync.cc
+++ b/test/cpp/qps/client_sync.cc
@@ -31,6 +31,8 @@
  *
  */
 
+#include <sys/signal.h>
+
 #include <cassert>
 #include <chrono>
 #include <memory>
@@ -40,21 +42,18 @@
 #include <vector>
 #include <sstream>
 
-#include <sys/signal.h>
-
+#include <gflags/gflags.h>
 #include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/histogram.h>
 #include <grpc/support/host_port.h>
 #include <grpc/support/log.h>
 #include <grpc/support/time.h>
-#include <gflags/gflags.h>
 #include <grpc++/client_context.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
 #include <gtest/gtest.h>
+
 #include "test/cpp/util/create_test_channel.h"
 #include "test/cpp/qps/client.h"
 #include "test/cpp/qps/qpstest.grpc.pb.h"
diff --git a/test/cpp/qps/driver.cc b/test/cpp/qps/driver.cc
index 78e37209382b27e1efb5e404ed029bbfd0d8e345..3bd61ea4e8bafe3e48f0bea5e1add7b2b9dc865b 100644
--- a/test/cpp/qps/driver.cc
+++ b/test/cpp/qps/driver.cc
@@ -31,24 +31,24 @@
  *
  */
 
-#include "test/cpp/qps/driver.h"
-#include "src/core/support/env.h"
+#include <unistd.h>
+#include <list>
+#include <thread>
+#include <deque>
+#include <vector>
+
 #include <grpc/support/alloc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/host_port.h>
-#include <grpc++/channel_arguments.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
-#include <grpc++/stream.h>
-#include <list>
-#include <thread>
-#include <deque>
-#include <vector>
-#include <unistd.h>
-#include "test/cpp/qps/histogram.h"
-#include "test/cpp/qps/qps_worker.h"
+
+#include "src/core/support/env.h"
 #include "test/core/util/port.h"
 #include "test/core/util/test_config.h"
+#include "test/cpp/qps/driver.h"
+#include "test/cpp/qps/histogram.h"
+#include "test/cpp/qps/qps_worker.h"
 
 using std::list;
 using std::thread;
diff --git a/test/cpp/qps/interarrival.h b/test/cpp/qps/interarrival.h
index 04d14f689fc7b39eb41387cc9e7e9695985b1558..841619e3ff5a81a5070eeb136b9a587f8f4a9218 100644
--- a/test/cpp/qps/interarrival.h
+++ b/test/cpp/qps/interarrival.h
@@ -39,7 +39,7 @@
 #include <cstdlib>
 #include <vector>
 
-#include <grpc++/config.h>
+#include <grpc++/support/config.h>
 
 namespace grpc {
 namespace testing {
diff --git a/test/cpp/qps/perf_db_client.cc b/test/cpp/qps/perf_db_client.cc
index 08d20f0b8d809fdfbc52c754b0af2065d30278a5..98efd8c3e34080118b242565147e2905e5c7c20c 100644
--- a/test/cpp/qps/perf_db_client.cc
+++ b/test/cpp/qps/perf_db_client.cc
@@ -44,9 +44,7 @@ void PerfDbClient::setConfigs(const ClientConfig& client_config,
 }
 
 // sets the QPS
-void PerfDbClient::setQps(double qps) {
-  qps_ = qps;
-}
+void PerfDbClient::setQps(double qps) { qps_ = qps; }
 
 // sets the QPS per core
 void PerfDbClient::setQpsPerCore(double qps_per_core) {
@@ -54,10 +52,8 @@ void PerfDbClient::setQpsPerCore(double qps_per_core) {
 }
 
 // sets the 50th, 90th, 95th, 99th and 99.9th percentile latency
-void PerfDbClient::setLatencies(double perc_lat_50,
-                                double perc_lat_90,
-                                double perc_lat_95,
-                                double perc_lat_99,
+void PerfDbClient::setLatencies(double perc_lat_50, double perc_lat_90,
+                                double perc_lat_95, double perc_lat_99,
                                 double perc_lat_99_point_9) {
   perc_lat_50_ = perc_lat_50;
   perc_lat_90_ = perc_lat_90;
@@ -68,7 +64,8 @@ void PerfDbClient::setLatencies(double perc_lat_50,
 
 // sets the server and client, user and system times
 void PerfDbClient::setTimes(double server_system_time, double server_user_time,
-                            double client_system_time, double client_user_time) {
+                            double client_system_time,
+                            double client_user_time) {
   server_system_time_ = server_system_time;
   server_user_time_ = server_user_time;
   client_system_time_ = client_system_time;
diff --git a/test/cpp/qps/perf_db_client.h b/test/cpp/qps/perf_db_client.h
index ce7a88bbff04b178f5c5ed3dc361a4972a269da2..ae5d17074b1887b6aa8af1d9743bdae32cd767ed 100644
--- a/test/cpp/qps/perf_db_client.h
+++ b/test/cpp/qps/perf_db_client.h
@@ -37,12 +37,11 @@
 #include <cfloat>
 
 #include <grpc/grpc.h>
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc++/support/channel_arguments.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/status.h>
 #include "test/cpp/qps/perf_db.grpc.pb.h"
 
 namespace grpc {
@@ -65,7 +64,7 @@ class PerfDbClient {
     client_user_time_ = DBL_MIN;
   }
 
-  void init(std::shared_ptr<ChannelInterface> channel) {
+  void init(std::shared_ptr<Channel> channel) {
     stub_ = PerfDbTransfer::NewStub(channel);
   }
 
@@ -82,9 +81,8 @@ class PerfDbClient {
   void setQpsPerCore(double qps_per_core);
 
   // sets the 50th, 90th, 95th, 99th and 99.9th percentile latency
-  void setLatencies(double perc_lat_50, double perc_lat_90,
-                    double perc_lat_95, double perc_lat_99,
-                    double perc_lat_99_point_9);
+  void setLatencies(double perc_lat_50, double perc_lat_90, double perc_lat_95,
+                    double perc_lat_99, double perc_lat_99_point_9);
 
   // sets the server and client, user and system times
   void setTimes(double server_system_time, double server_user_time,
diff --git a/test/cpp/qps/qps_interarrival_test.cc b/test/cpp/qps/qps_interarrival_test.cc
index cecd1be03f6880d5dd98e05181da8364bb4112a1..a7979e6187813041c15661ca06234835b99a8f86 100644
--- a/test/cpp/qps/qps_interarrival_test.cc
+++ b/test/cpp/qps/qps_interarrival_test.cc
@@ -31,18 +31,18 @@
  *
  */
 
-#include "test/cpp/qps/interarrival.h"
 #include <chrono>
 #include <iostream>
 
 // Use the C histogram rather than C++ to avoid depending on proto
 #include <grpc/support/histogram.h>
-#include <grpc++/config.h>
+
+#include "test/cpp/qps/interarrival.h"
 
 using grpc::testing::RandomDist;
 using grpc::testing::InterarrivalTimer;
 
-void RunTest(RandomDist&& r, int threads, std::string title) {
+void RunTest(RandomDist &&r, int threads, std::string title) {
   InterarrivalTimer timer;
   timer.init(r, threads);
   gpr_histogram *h(gpr_histogram_create(0.01, 60e9));
diff --git a/test/cpp/qps/qps_openloop_test.cc b/test/cpp/qps/qps_openloop_test.cc
index 96a9b4504c9dc9739185e63f940539c945167db6..5a6a9249a93e558c76be4783efba2d6b69df082d 100644
--- a/test/cpp/qps/qps_openloop_test.cc
+++ b/test/cpp/qps/qps_openloop_test.cc
@@ -31,12 +31,12 @@
  *
  */
 
+#include <signal.h>
+
 #include <set>
 
 #include <grpc/support/log.h>
 
-#include <signal.h>
-
 #include "test/cpp/qps/driver.h"
 #include "test/cpp/qps/report.h"
 #include "test/cpp/util/benchmark_config.h"
@@ -59,8 +59,8 @@ static void RunQPS() {
   client_config.set_async_client_threads(8);
   client_config.set_rpc_type(UNARY);
   client_config.set_load_type(POISSON);
-  client_config.mutable_load_params()->
-    mutable_poisson()->set_offered_load(1000.0);
+  client_config.mutable_load_params()->mutable_poisson()->set_offered_load(
+      1000.0);
 
   ServerConfig server_config;
   server_config.set_server_type(ASYNC_SERVER);
diff --git a/test/cpp/qps/qps_test.cc b/test/cpp/qps/qps_test.cc
index ba980a666438e73a6a78fa308b83e19f31aa6f63..d0c4a79cd92ae94504842dab72a26763287d88ac 100644
--- a/test/cpp/qps/qps_test.cc
+++ b/test/cpp/qps/qps_test.cc
@@ -31,12 +31,12 @@
  *
  */
 
+#include <signal.h>
+
 #include <set>
 
 #include <grpc/support/log.h>
 
-#include <signal.h>
-
 #include "test/cpp/qps/driver.h"
 #include "test/cpp/qps/report.h"
 #include "test/cpp/util/benchmark_config.h"
diff --git a/test/cpp/qps/qps_test_with_poll.cc b/test/cpp/qps/qps_test_with_poll.cc
index 90a8da8d1109fbc76a612f4e33e2bf831f2592a6..31d2c1bf7b49b55fa44815f678f379813dfae73b 100644
--- a/test/cpp/qps/qps_test_with_poll.cc
+++ b/test/cpp/qps/qps_test_with_poll.cc
@@ -31,12 +31,12 @@
  *
  */
 
+#include <signal.h>
+
 #include <set>
 
 #include <grpc/support/log.h>
 
-#include <signal.h>
-
 #include "test/cpp/qps/driver.h"
 #include "test/cpp/qps/report.h"
 #include "test/cpp/util/benchmark_config.h"
diff --git a/test/cpp/qps/qps_worker.cc b/test/cpp/qps/qps_worker.cc
index f1cea5ee6655b71dc0545907fb4c0e2db51a2eab..51e955a80a45649fe6a0a6633e5b8e92230d8755 100644
--- a/test/cpp/qps/qps_worker.cc
+++ b/test/cpp/qps/qps_worker.cc
@@ -47,16 +47,15 @@
 #include <grpc/support/log.h>
 #include <grpc/support/host_port.h>
 #include <grpc++/client_context.h>
-#include <grpc++/status.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/stream.h>
+
 #include "test/core/util/grpc_profiler.h"
-#include "test/cpp/util/create_test_channel.h"
 #include "test/cpp/qps/qpstest.pb.h"
 #include "test/cpp/qps/client.h"
 #include "test/cpp/qps/server.h"
+#include "test/cpp/util/create_test_channel.h"
 
 namespace grpc {
 namespace testing {
diff --git a/test/cpp/qps/report.h b/test/cpp/qps/report.h
index aec3cbe80a35366b281a023abfbc2d36aede8550..620abade39bee4544c996b5711e8a082a9bd6eaf 100644
--- a/test/cpp/qps/report.h
+++ b/test/cpp/qps/report.h
@@ -37,7 +37,8 @@
 #include <memory>
 #include <set>
 #include <vector>
-#include <grpc++/config.h>
+
+#include <grpc++/support/config.h>
 
 #include "test/cpp/qps/driver.h"
 #include "test/cpp/qps/qpstest.grpc.pb.h"
diff --git a/test/cpp/qps/server_async.cc b/test/cpp/qps/server_async.cc
index b4fc49c31c3e162dafe76b2f4d3f78d6bcf7df2b..77415f42ce7bd4db6f2afed8e9ded8826a9fe646 100644
--- a/test/cpp/qps/server_async.cc
+++ b/test/cpp/qps/server_async.cc
@@ -41,22 +41,20 @@
 #include <thread>
 
 #include <gflags/gflags.h>
+#include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/host_port.h>
-#include <grpc++/async_unary_call.h>
-#include <grpc++/config.h>
+#include <grpc/support/log.h>
+#include <grpc++/support/config.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
 #include <gtest/gtest.h>
+
 #include "test/cpp/qps/qpstest.grpc.pb.h"
 #include "test/cpp/qps/server.h"
 
-#include <grpc/grpc.h>
-#include <grpc/support/log.h>
 
 namespace grpc {
 namespace testing {
diff --git a/test/cpp/qps/server_sync.cc b/test/cpp/qps/server_sync.cc
index 4c3c9cb497ff87358f1e703c83c938d56611bfe3..29ec19cd4bca3cbc7155a6f1eadbd61db447c2ef 100644
--- a/test/cpp/qps/server_sync.cc
+++ b/test/cpp/qps/server_sync.cc
@@ -32,28 +32,23 @@
  */
 
 #include <sys/signal.h>
-#include <thread>
-
 #include <unistd.h>
+#include <thread>
 
 #include <gflags/gflags.h>
+#include <grpc/grpc.h>
 #include <grpc/support/alloc.h>
 #include <grpc/support/host_port.h>
-#include <grpc++/config.h>
-#include <grpc++/dynamic_thread_pool.h>
-#include <grpc++/fixed_size_thread_pool.h>
+#include <grpc/support/log.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
+
 #include "test/cpp/qps/qpstest.grpc.pb.h"
 #include "test/cpp/qps/server.h"
 #include "test/cpp/qps/timer.h"
 
-#include <grpc/grpc.h>
-#include <grpc/support/log.h>
 
 namespace grpc {
 namespace testing {
@@ -93,12 +88,7 @@ class TestServiceImpl GRPC_FINAL : public TestService::Service {
 class SynchronousServer GRPC_FINAL : public grpc::testing::Server {
  public:
   SynchronousServer(const ServerConfig& config, int port)
-      : thread_pool_(), impl_(MakeImpl(port)) {
-    if (config.threads() > 0) {
-      thread_pool_.reset(new FixedSizeThreadPool(config.threads()));
-    } else {
-      thread_pool_.reset(new DynamicThreadPool(-config.threads()));
-    }
+      : impl_(MakeImpl(port)) {
   }
 
  private:
@@ -112,13 +102,10 @@ class SynchronousServer GRPC_FINAL : public grpc::testing::Server {
 
     builder.RegisterService(&service_);
 
-    builder.SetThreadPool(thread_pool_.get());
-
     return builder.BuildAndStart();
   }
 
   TestServiceImpl service_;
-  std::unique_ptr<ThreadPoolInterface> thread_pool_;
   std::unique_ptr<grpc::Server> impl_;
 };
 
diff --git a/test/cpp/qps/stats.h b/test/cpp/qps/stats.h
index 82dc03e3dadf7ed06e3e3a098e57dbf957e8211d..93875017ca757eae0f3bc1ad41301e870ac3d6f7 100644
--- a/test/cpp/qps/stats.h
+++ b/test/cpp/qps/stats.h
@@ -34,9 +34,10 @@
 #ifndef TEST_QPS_STATS_UTILS_H
 #define TEST_QPS_STATS_UTILS_H
 
-#include "test/cpp/qps/histogram.h"
 #include <string>
 
+#include "test/cpp/qps/histogram.h"
+
 namespace grpc {
 namespace testing {
 
diff --git a/test/cpp/qps/sync_streaming_ping_pong_test.cc b/test/cpp/qps/sync_streaming_ping_pong_test.cc
index d53905a7790da07630b8de2ec750fe6923bef854..52e43939a814c7151425d9e0befdd83706620217 100644
--- a/test/cpp/qps/sync_streaming_ping_pong_test.cc
+++ b/test/cpp/qps/sync_streaming_ping_pong_test.cc
@@ -31,12 +31,12 @@
  *
  */
 
+#include <signal.h>
+
 #include <set>
 
 #include <grpc/support/log.h>
 
-#include <signal.h>
-
 #include "test/cpp/qps/driver.h"
 #include "test/cpp/qps/report.h"
 #include "test/cpp/util/benchmark_config.h"
diff --git a/test/cpp/qps/sync_unary_ping_pong_test.cc b/test/cpp/qps/sync_unary_ping_pong_test.cc
index d276d13a4306fe5cc8a4aac679dbbd4f32f2634b..fbd21357aa593dd9358effbbf1d1b5ca6eadd3eb 100644
--- a/test/cpp/qps/sync_unary_ping_pong_test.cc
+++ b/test/cpp/qps/sync_unary_ping_pong_test.cc
@@ -31,12 +31,12 @@
  *
  */
 
+#include <signal.h>
+
 #include <set>
 
 #include <grpc/support/log.h>
 
-#include <signal.h>
-
 #include "test/cpp/qps/driver.h"
 #include "test/cpp/qps/report.h"
 #include "test/cpp/util/benchmark_config.h"
diff --git a/test/cpp/qps/timer.cc b/test/cpp/qps/timer.cc
index c1ba23decd961fe6b5f5ecc7958e9784175218db..8edb838da37dff75d5e64141660010ad509931d8 100644
--- a/test/cpp/qps/timer.cc
+++ b/test/cpp/qps/timer.cc
@@ -36,7 +36,6 @@
 #include <sys/time.h>
 #include <sys/resource.h>
 #include <grpc/support/time.h>
-#include <grpc++/config.h>
 
 Timer::Timer() : start_(Sample()) {}
 
diff --git a/test/cpp/qps/worker.cc b/test/cpp/qps/worker.cc
index 7cf4903148af164d47fcdb2676a0114b6c79dd82..935e4853a62a11239f75924f15d2a73d10025ce5 100644
--- a/test/cpp/qps/worker.cc
+++ b/test/cpp/qps/worker.cc
@@ -36,9 +36,9 @@
 #include <chrono>
 #include <thread>
 
+#include <gflags/gflags.h>
 #include <grpc/grpc.h>
 #include <grpc/support/time.h>
-#include <gflags/gflags.h>
 
 #include "test/cpp/qps/qps_worker.h"
 #include "test/cpp/util/test_config.h"
diff --git a/test/cpp/util/benchmark_config.cc b/test/cpp/util/benchmark_config.cc
index 91fbbf96771edf21f67d8aa97c31cd60a8b11837..3c38221b4cbdabe8042e02f9c2240638becfcaa0 100644
--- a/test/cpp/util/benchmark_config.cc
+++ b/test/cpp/util/benchmark_config.cc
@@ -37,7 +37,8 @@
 DEFINE_bool(enable_log_reporter, true,
             "Enable reporting of benchmark results through GprLog");
 
-DEFINE_bool(report_metrics_db, false, "True if metrics to be reported to performance database");
+DEFINE_bool(report_metrics_db, false,
+            "True if metrics to be reported to performance database");
 
 DEFINE_string(hashed_id, "", "Hash of the user id");
 
@@ -45,7 +46,8 @@ DEFINE_string(test_name, "", "Name of the test being executed");
 
 DEFINE_string(sys_info, "", "System information");
 
-DEFINE_string(server_address, "localhost:50052", "Address of the performance database server");
+DEFINE_string(server_address, "localhost:50052",
+              "Address of the performance database server");
 
 DEFINE_string(tag, "", "Optional tag for the test");
 
@@ -69,10 +71,10 @@ static std::shared_ptr<Reporter> InitBenchmarkReporters() {
     composite_reporter->add(
         std::unique_ptr<Reporter>(new GprLogReporter("LogReporter")));
   }
-  if(FLAGS_report_metrics_db) {
-    composite_reporter->add(
-      std::unique_ptr<Reporter>(new PerfDbReporter("PerfDbReporter", FLAGS_hashed_id, FLAGS_test_name, 
-        FLAGS_sys_info, FLAGS_server_address, FLAGS_tag)));
+  if (FLAGS_report_metrics_db) {
+    composite_reporter->add(std::unique_ptr<Reporter>(
+        new PerfDbReporter("PerfDbReporter", FLAGS_hashed_id, FLAGS_test_name,
+                           FLAGS_sys_info, FLAGS_server_address, FLAGS_tag)));
   }
 
   return std::shared_ptr<Reporter>(composite_reporter);
diff --git a/test/cpp/util/byte_buffer_test.cc b/test/cpp/util/byte_buffer_test.cc
index 13eb49730a8c8a75be34084f35d661340f034325..f36c32cac5b1d47527a2594875efcb8148ec8688 100644
--- a/test/cpp/util/byte_buffer_test.cc
+++ b/test/cpp/util/byte_buffer_test.cc
@@ -31,13 +31,13 @@
  *
  */
 
-#include <grpc++/byte_buffer.h>
+#include <grpc++/support/byte_buffer.h>
 
 #include <cstring>
 #include <vector>
 
 #include <grpc/support/slice.h>
-#include <grpc++/slice.h>
+#include <grpc++/support/slice.h>
 #include <gtest/gtest.h>
 
 namespace grpc {
@@ -46,8 +46,7 @@ namespace {
 const char* kContent1 = "hello xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
 const char* kContent2 = "yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy world";
 
-class ByteBufferTest : public ::testing::Test {
-};
+class ByteBufferTest : public ::testing::Test {};
 
 TEST_F(ByteBufferTest, CreateFromSingleSlice) {
   gpr_slice hello = gpr_slice_from_copied_string(kContent1);
diff --git a/test/cpp/util/cli_call.cc b/test/cpp/util/cli_call.cc
index 83a7a1744a895035a5217f74c75bea9e672ec7ed..d60cee9c024db5f8cf00bce42eb6e360cc83b516 100644
--- a/test/cpp/util/cli_call.cc
+++ b/test/cpp/util/cli_call.cc
@@ -35,24 +35,21 @@
 
 #include <iostream>
 
-#include <grpc++/byte_buffer.h>
-#include <grpc++/channel_interface.h>
-#include <grpc++/client_context.h>
-#include <grpc++/generic_stub.h>
-#include <grpc++/status.h>
-#include <grpc++/stream.h>
-
 #include <grpc/grpc.h>
 #include <grpc/support/log.h>
 #include <grpc/support/slice.h>
+#include <grpc++/support/byte_buffer.h>
+#include <grpc++/channel.h>
+#include <grpc++/client_context.h>
+#include <grpc++/generic/generic_stub.h>
 
 namespace grpc {
 namespace testing {
 namespace {
-void* tag(int i) { return (void*)(gpr_intptr) i; }
+void* tag(int i) { return (void*)(gpr_intptr)i; }
 }  // namespace
 
-Status CliCall::Call(std::shared_ptr<grpc::ChannelInterface> channel,
+Status CliCall::Call(std::shared_ptr<grpc::Channel> channel,
                      const grpc::string& method, const grpc::string& request,
                      grpc::string* response, const MetadataContainer& metadata,
                      MetadataContainer* server_initial_metadata,
diff --git a/test/cpp/util/cli_call.h b/test/cpp/util/cli_call.h
index 8d114c9cb5ece4c5672630869170457247b366c7..7a3dcf2e9f6c4082710b42bd73935adb9829a7e0 100644
--- a/test/cpp/util/cli_call.h
+++ b/test/cpp/util/cli_call.h
@@ -36,9 +36,8 @@
 
 #include <map>
 
-#include <grpc++/channel_interface.h>
-#include <grpc++/config.h>
-#include <grpc++/status.h>
+#include <grpc++/channel.h>
+#include <grpc++/support/status.h>
 
 namespace grpc {
 namespace testing {
@@ -46,7 +45,7 @@ namespace testing {
 class CliCall GRPC_FINAL {
  public:
   typedef std::multimap<grpc::string, grpc::string> MetadataContainer;
-  static Status Call(std::shared_ptr<grpc::ChannelInterface> channel,
+  static Status Call(std::shared_ptr<grpc::Channel> channel,
                      const grpc::string& method, const grpc::string& request,
                      grpc::string* response, const MetadataContainer& metadata,
                      MetadataContainer* server_initial_metadata,
diff --git a/test/cpp/util/cli_call_test.cc b/test/cpp/util/cli_call_test.cc
index 848a3aee577100010f10ddedea0f8455d94a231a..35bfad202f0c01cc9f0cb36d4c779e1b246430e2 100644
--- a/test/cpp/util/cli_call_test.cc
+++ b/test/cpp/util/cli_call_test.cc
@@ -31,24 +31,22 @@
  *
  */
 
-#include "test/core/util/test_config.h"
 #include "test/cpp/util/cli_call.h"
-#include "test/cpp/util/echo.grpc.pb.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+
+#include <grpc/grpc.h>
+#include <grpc++/channel.h>
 #include <grpc++/client_context.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
-#include <grpc++/dynamic_thread_pool.h>
 #include <grpc++/server.h>
 #include <grpc++/server_builder.h>
 #include <grpc++/server_context.h>
 #include <grpc++/server_credentials.h>
-#include <grpc++/status.h>
-#include "test/core/util/port.h"
 #include <gtest/gtest.h>
 
-#include <grpc/grpc.h>
+#include "test/core/util/port.h"
+#include "test/core/util/test_config.h"
+#include "test/cpp/util/echo.grpc.pb.h"
 
 using grpc::cpp::test::util::EchoRequest;
 using grpc::cpp::test::util::EchoResponse;
@@ -75,7 +73,7 @@ class TestServiceImpl : public ::grpc::cpp::test::util::TestService::Service {
 
 class CliCallTest : public ::testing::Test {
  protected:
-  CliCallTest() : thread_pool_(2) {}
+  CliCallTest() {}
 
   void SetUp() GRPC_OVERRIDE {
     int port = grpc_pick_unused_port_or_die();
@@ -85,7 +83,6 @@ class CliCallTest : public ::testing::Test {
     builder.AddListeningPort(server_address_.str(),
                              InsecureServerCredentials());
     builder.RegisterService(&service_);
-    builder.SetThreadPool(&thread_pool_);
     server_ = builder.BuildAndStart();
   }
 
@@ -97,12 +94,11 @@ class CliCallTest : public ::testing::Test {
     stub_ = std::move(grpc::cpp::test::util::TestService::NewStub(channel_));
   }
 
-  std::shared_ptr<ChannelInterface> channel_;
+  std::shared_ptr<Channel> channel_;
   std::unique_ptr<grpc::cpp::test::util::TestService::Stub> stub_;
   std::unique_ptr<Server> server_;
   std::ostringstream server_address_;
   TestServiceImpl service_;
-  DynamicThreadPool thread_pool_;
 };
 
 // Send a rpc with a normal stub and then a CliCall. Verify they match.
diff --git a/test/cpp/util/create_test_channel.cc b/test/cpp/util/create_test_channel.cc
index dc48fa2d87f995a438b79588b8f040252e6e23ab..161b4bdc1d5ea9b6d98b12a9002bc559c9f184b2 100644
--- a/test/cpp/util/create_test_channel.cc
+++ b/test/cpp/util/create_test_channel.cc
@@ -33,11 +33,11 @@
 
 #include "test/cpp/util/create_test_channel.h"
 
-#include "test/core/end2end/data/ssl_test_data.h"
-#include <grpc++/channel_arguments.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
 
+#include "test/core/end2end/data/ssl_test_data.h"
+
 namespace grpc {
 
 // When ssl is enabled, if server is empty, override_hostname is used to
@@ -55,7 +55,7 @@ namespace grpc {
 //   CreateTestChannel("test.google.com:443", "", true, true, creds);
 //   same as above
 //   CreateTestChannel("", "test.google.com:443", true, true, creds);
-std::shared_ptr<ChannelInterface> CreateTestChannel(
+std::shared_ptr<Channel> CreateTestChannel(
     const grpc::string& server, const grpc::string& override_hostname,
     bool enable_ssl, bool use_prod_roots,
     const std::shared_ptr<Credentials>& creds) {
@@ -80,7 +80,7 @@ std::shared_ptr<ChannelInterface> CreateTestChannel(
   }
 }
 
-std::shared_ptr<ChannelInterface> CreateTestChannel(
+std::shared_ptr<Channel> CreateTestChannel(
     const grpc::string& server, const grpc::string& override_hostname,
     bool enable_ssl, bool use_prod_roots) {
   return CreateTestChannel(server, override_hostname, enable_ssl,
@@ -88,8 +88,8 @@ std::shared_ptr<ChannelInterface> CreateTestChannel(
 }
 
 // Shortcut for end2end and interop tests.
-std::shared_ptr<ChannelInterface> CreateTestChannel(const grpc::string& server,
-                                                    bool enable_ssl) {
+std::shared_ptr<Channel> CreateTestChannel(const grpc::string& server,
+                                           bool enable_ssl) {
   return CreateTestChannel(server, "foo.test.google.fr", enable_ssl, false);
 }
 
diff --git a/test/cpp/util/create_test_channel.h b/test/cpp/util/create_test_channel.h
index 5f2609ddd81e5de0b2c7c830ec920721ffaf5bdc..1263d4ed68609c87e63a9d400466de20dc3527cc 100644
--- a/test/cpp/util/create_test_channel.h
+++ b/test/cpp/util/create_test_channel.h
@@ -36,20 +36,19 @@
 
 #include <memory>
 
-#include <grpc++/config.h>
 #include <grpc++/credentials.h>
 
 namespace grpc {
-class ChannelInterface;
+class Channel;
 
-std::shared_ptr<ChannelInterface> CreateTestChannel(const grpc::string& server,
-                                                    bool enable_ssl);
+std::shared_ptr<Channel> CreateTestChannel(const grpc::string& server,
+                                           bool enable_ssl);
 
-std::shared_ptr<ChannelInterface> CreateTestChannel(
+std::shared_ptr<Channel> CreateTestChannel(
     const grpc::string& server, const grpc::string& override_hostname,
     bool enable_ssl, bool use_prod_roots);
 
-std::shared_ptr<ChannelInterface> CreateTestChannel(
+std::shared_ptr<Channel> CreateTestChannel(
     const grpc::string& server, const grpc::string& override_hostname,
     bool enable_ssl, bool use_prod_roots,
     const std::shared_ptr<Credentials>& creds);
diff --git a/test/cpp/util/grpc_cli.cc b/test/cpp/util/grpc_cli.cc
index 3c3baeb769dd9ef88b8380a6d8c8b2634c3c9b29..746d67deeb9145e728065b1d000db645364922cf 100644
--- a/test/cpp/util/grpc_cli.cc
+++ b/test/cpp/util/grpc_cli.cc
@@ -64,14 +64,13 @@
 #include <sstream>
 
 #include <gflags/gflags.h>
-#include "test/cpp/util/cli_call.h"
-#include "test/cpp/util/test_config.h"
-#include <grpc++/channel_arguments.h>
-#include <grpc++/channel_interface.h>
+#include <grpc/grpc.h>
+#include <grpc++/channel.h>
 #include <grpc++/create_channel.h>
 #include <grpc++/credentials.h>
 
-#include <grpc/grpc.h>
+#include "test/cpp/util/cli_call.h"
+#include "test/cpp/util/test_config.h"
 
 DEFINE_bool(enable_ssl, true, "Whether to use ssl/tls.");
 DEFINE_bool(use_auth, false, "Whether to create default google credentials.");
@@ -154,7 +153,7 @@ int main(int argc, char** argv) {
       creds = grpc::SslCredentials(grpc::SslCredentialsOptions());
     }
   }
-  std::shared_ptr<grpc::ChannelInterface> channel =
+  std::shared_ptr<grpc::Channel> channel =
       grpc::CreateChannel(server_address, creds, grpc::ChannelArguments());
 
   grpc::string response;
diff --git a/test/cpp/util/slice_test.cc b/test/cpp/util/slice_test.cc
index eb328490e13ba87f8bb203629dcb9b8ee5d0738b..de7ff031ab8593ecbc63908cc18f60cd9623bac4 100644
--- a/test/cpp/util/slice_test.cc
+++ b/test/cpp/util/slice_test.cc
@@ -31,7 +31,7 @@
  *
  */
 
-#include <grpc++/slice.h>
+#include <grpc++/support/slice.h>
 
 #include <grpc/support/slice.h>
 #include <gtest/gtest.h>
diff --git a/test/cpp/util/status_test.cc b/test/cpp/util/status_test.cc
index 17b92ab06a28ed896395807af452e6c5e480e908..837a6bab02ed1ae5caa5e6002bf30ee9fdc0f666 100644
--- a/test/cpp/util/status_test.cc
+++ b/test/cpp/util/status_test.cc
@@ -31,7 +31,8 @@
  *
  */
 
-#include <grpc++/status.h>
+#include <grpc++/support/status.h>
+
 #include <grpc/status.h>
 #include <grpc/support/log.h>
 
diff --git a/test/cpp/util/string_ref_test.cc b/test/cpp/util/string_ref_test.cc
new file mode 100644
index 0000000000000000000000000000000000000000..c4ca4fce848c90545978a15a2cbdbc9eb0d67ed4
--- /dev/null
+++ b/test/cpp/util/string_ref_test.cc
@@ -0,0 +1,215 @@
+/*
+ *
+ * Copyright 2015, Google Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+#include <grpc++/support/string_ref.h>
+
+#include <string.h>
+
+#include <gtest/gtest.h>
+
+namespace grpc {
+namespace {
+
+const char kTestString[] = "blah";
+const char kTestStringWithEmbeddedNull[] = "blah\0foo";
+const size_t kTestStringWithEmbeddedNullLength = 8;
+const char kTestUnrelatedString[] = "foo";
+
+class StringRefTest : public ::testing::Test {
+};
+
+TEST_F(StringRefTest, Empty) {
+  string_ref s;
+  EXPECT_EQ(0U, s.length());
+  EXPECT_EQ(nullptr, s.data());
+}
+
+TEST_F(StringRefTest, FromCString) {
+  string_ref s(kTestString);
+  EXPECT_EQ(strlen(kTestString), s.length());
+  EXPECT_EQ(kTestString, s.data());
+}
+
+TEST_F(StringRefTest, FromCStringWithLength) {
+  string_ref s(kTestString, 2);
+  EXPECT_EQ(2U, s.length());
+  EXPECT_EQ(kTestString, s.data());
+}
+
+TEST_F(StringRefTest, FromString) {
+  string copy(kTestString);
+  string_ref s(copy);
+  EXPECT_EQ(copy.data(), s.data());
+  EXPECT_EQ(copy.length(), s.length());
+}
+
+TEST_F(StringRefTest, CopyConstructor) {
+  string_ref s1(kTestString);;
+  string_ref s2(s1);
+  EXPECT_EQ(s1.length(), s2.length());
+  EXPECT_EQ(s1.data(), s2.data());
+}
+
+TEST_F(StringRefTest, FromStringWithEmbeddedNull) {
+  string copy(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
+  string_ref s(copy);
+  EXPECT_EQ(copy.data(), s.data());
+  EXPECT_EQ(copy.length(), s.length());
+  EXPECT_EQ(kTestStringWithEmbeddedNullLength, s.length());
+}
+
+TEST_F(StringRefTest, Assignment) {
+  string_ref s1(kTestString);;
+  string_ref s2;
+  EXPECT_EQ(nullptr, s2.data());
+  s2 = s1;
+  EXPECT_EQ(s1.length(), s2.length());
+  EXPECT_EQ(s1.data(), s2.data());
+}
+
+TEST_F(StringRefTest, Iterator) {
+  string_ref s(kTestString);
+  size_t i = 0;
+  for (char c : s) {
+    EXPECT_EQ(kTestString[i++], c);
+  }
+  EXPECT_EQ(strlen(kTestString), i);
+}
+
+TEST_F(StringRefTest, ReverseIterator) {
+  string_ref s(kTestString);
+  size_t i = strlen(kTestString);
+  for (auto rit = s.crbegin();  rit != s.crend(); ++rit) {
+    EXPECT_EQ(kTestString[--i], *rit);
+  }
+  EXPECT_EQ(0U, i);
+}
+
+TEST_F(StringRefTest, Capacity) {
+  string_ref empty;
+  EXPECT_EQ(0U, empty.length());
+  EXPECT_EQ(0U, empty.size());
+  EXPECT_EQ(0U, empty.max_size());
+  EXPECT_TRUE(empty.empty());
+
+  string_ref s(kTestString);
+  EXPECT_EQ(strlen(kTestString), s.length());
+  EXPECT_EQ(s.length(), s.size());
+  EXPECT_EQ(s.max_size(), s.length());
+  EXPECT_FALSE(s.empty());
+}
+
+TEST_F(StringRefTest, Compare) {
+  string_ref s1(kTestString);
+  string s1_copy(kTestString);
+  string_ref s2(kTestUnrelatedString);
+  string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
+  EXPECT_EQ(0, s1.compare(s1_copy));
+  EXPECT_NE(0, s1.compare(s2));
+  EXPECT_NE(0, s1.compare(s3));
+}
+
+TEST_F(StringRefTest, StartsWith) {
+  string_ref s1(kTestString);
+  string_ref s2(kTestUnrelatedString);
+  string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
+  EXPECT_TRUE(s1.starts_with(s1));
+  EXPECT_FALSE(s1.starts_with(s2));
+  EXPECT_FALSE(s2.starts_with(s1));
+  EXPECT_FALSE(s1.starts_with(s3));
+  EXPECT_TRUE(s3.starts_with(s1));
+}
+
+TEST_F(StringRefTest, Endswith) {
+  string_ref s1(kTestString);
+  string_ref s2(kTestUnrelatedString);
+  string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
+  EXPECT_TRUE(s1.ends_with(s1));
+  EXPECT_FALSE(s1.ends_with(s2));
+  EXPECT_FALSE(s2.ends_with(s1));
+  EXPECT_FALSE(s2.ends_with(s3));
+  EXPECT_TRUE(s3.ends_with(s2));
+}
+
+TEST_F(StringRefTest, Find) {
+  string_ref s1(kTestString);
+  string_ref s2(kTestUnrelatedString);
+  string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
+  EXPECT_EQ(0U, s1.find(s1));
+  EXPECT_EQ(0U, s2.find(s2));
+  EXPECT_EQ(0U, s3.find(s3));
+  EXPECT_EQ(string_ref::npos,s1.find(s2) );
+  EXPECT_EQ(string_ref::npos,s2.find(s1));
+  EXPECT_EQ(string_ref::npos,s1.find(s3));
+  EXPECT_EQ(0U, s3.find(s1));
+  EXPECT_EQ(5U, s3.find(s2));
+  EXPECT_EQ(string_ref::npos, s1.find('z'));
+  EXPECT_EQ(1U, s2.find('o'));
+}
+
+TEST_F(StringRefTest, SubString) {
+  string_ref s(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
+  string_ref sub1 = s.substr(0, 4);
+  EXPECT_EQ(string_ref(kTestString), sub1);
+  string_ref sub2 = s.substr(5);
+  EXPECT_EQ(string_ref(kTestUnrelatedString), sub2);
+}
+
+TEST_F(StringRefTest, ComparisonOperators) {
+  string_ref s1(kTestString);
+  string_ref s2(kTestUnrelatedString);
+  string_ref s3(kTestStringWithEmbeddedNull, kTestStringWithEmbeddedNullLength);
+  EXPECT_EQ(s1, s1);
+  EXPECT_EQ(s2, s2);
+  EXPECT_EQ(s3, s3);
+  EXPECT_GE(s1, s1);
+  EXPECT_GE(s2, s2);
+  EXPECT_GE(s3, s3);
+  EXPECT_LE(s1, s1);
+  EXPECT_LE(s2, s2);
+  EXPECT_LE(s3, s3);
+  EXPECT_NE(s1, s2);
+  EXPECT_NE(s1, s3);
+  EXPECT_NE(s2, s3);
+  EXPECT_GT(s3, s1);
+  EXPECT_LT(s1, s3);
+}
+
+}  // namespace
+}  // namespace grpc
+
+int main(int argc, char** argv) {
+  ::testing::InitGoogleTest(&argc, argv);
+  return RUN_ALL_TESTS();
+}
+
diff --git a/test/cpp/util/time_test.cc b/test/cpp/util/time_test.cc
index 4cb6ec4b4e9f4ecbb766954370eff1d378b6b418..1e501dfd28877413fd5ff4274fd1c1c37067d2b8 100644
--- a/test/cpp/util/time_test.cc
+++ b/test/cpp/util/time_test.cc
@@ -32,7 +32,7 @@
  */
 
 #include <grpc/support/time.h>
-#include <grpc++/time.h>
+#include <grpc++/support/time.h>
 #include <gtest/gtest.h>
 
 using std::chrono::duration_cast;
diff --git a/third_party/googletest b/third_party/googletest
new file mode 160000
index 0000000000000000000000000000000000000000..c99458533a9b4c743ed51537e25989ea55944908
--- /dev/null
+++ b/third_party/googletest
@@ -0,0 +1 @@
+Subproject commit c99458533a9b4c743ed51537e25989ea55944908
diff --git a/test/cpp/server/dynamic_thread_pool_test.cc b/tools/codegen/core/gen_legal_metadata_characters.c
similarity index 62%
rename from test/cpp/server/dynamic_thread_pool_test.cc
rename to tools/codegen/core/gen_legal_metadata_characters.c
index 63b603b8f7bf7321bc19ae2abea902247f015f88..5c290f2923229eecd31154ebca623c3cc3cf4947 100644
--- a/test/cpp/server/dynamic_thread_pool_test.cc
+++ b/tools/codegen/core/gen_legal_metadata_characters.c
@@ -31,47 +31,43 @@
  *
  */
 
-#include <condition_variable>
-#include <functional>
-#include <mutex>
+/* generates constant table for metadata.c */
 
-#include <grpc++/dynamic_thread_pool.h>
-#include <gtest/gtest.h>
+#include <stdio.h>
+#include <string.h>
 
-namespace grpc {
+static unsigned char legal_bits[256 / 8];
 
-class DynamicThreadPoolTest : public ::testing::Test {
- public:
-  DynamicThreadPoolTest() : thread_pool_(0) {}
+static void legal(int x) {
+  int byte = x / 8;
+  int bit = x % 8;
+  legal_bits[byte] |= 1 << bit;
+}
 
- protected:
-  DynamicThreadPool thread_pool_;
-};
+static void dump(void) {
+  int i;
 
-void Callback(std::mutex* mu, std::condition_variable* cv, bool* done) {
-  std::unique_lock<std::mutex> lock(*mu);
-  *done = true;
-  cv->notify_all();
+  printf("static const gpr_uint8 legal_header_bits[256/8] = ");
+  for (i = 0; i < 256 / 8; i++)
+    printf("%c 0x%02x", i ? ',' : '{', legal_bits[i]);
+  printf(" };\n");
 }
 
-TEST_F(DynamicThreadPoolTest, Add) {
-  std::mutex mu;
-  std::condition_variable cv;
-  bool done = false;
-  std::function<void()> callback = std::bind(Callback, &mu, &cv, &done);
-  thread_pool_.Add(callback);
+static void clear(void) { memset(legal_bits, 0, sizeof(legal_bits)); }
 
-  // Wait for the callback to finish.
-  std::unique_lock<std::mutex> lock(mu);
-  while (!done) {
-    cv.wait(lock);
-  }
-}
+int main(void) {
+  int i;
+
+  clear();
+  for (i = 'a'; i <= 'z'; i++) legal(i);
+  for (i = '0'; i <= '9'; i++) legal(i);
+  legal('-');
+  legal('_');
+  dump();
 
-}  // namespace grpc
+  clear();
+  for (i = 32; i <= 126; i++) legal(i);
+  dump();
 
-int main(int argc, char** argv) {
-  ::testing::InitGoogleTest(&argc, argv);
-  int result = RUN_ALL_TESTS();
-  return result;
+  return 0;
 }
diff --git a/tools/doxygen/Doxyfile.c++ b/tools/doxygen/Doxyfile.c++
index 790e637b72833ff2197656ec596eb7cdde3f6993..887f6169af96a342dce97891b20f247699faf8d6 100644
--- a/tools/doxygen/Doxyfile.c++
+++ b/tools/doxygen/Doxyfile.c++
@@ -760,25 +760,16 @@ WARN_LOGFILE           =
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = include/grpc++/async_generic_service.h \
-include/grpc++/async_unary_call.h \
-include/grpc++/auth_context.h \
-include/grpc++/byte_buffer.h \
-include/grpc++/channel_arguments.h \
-include/grpc++/channel_interface.h \
+INPUT                  = include/grpc++/channel.h \
 include/grpc++/client_context.h \
 include/grpc++/completion_queue.h \
-include/grpc++/config.h \
-include/grpc++/config_protobuf.h \
 include/grpc++/create_channel.h \
 include/grpc++/credentials.h \
-include/grpc++/dynamic_thread_pool.h \
-include/grpc++/fixed_size_thread_pool.h \
-include/grpc++/generic_stub.h \
+include/grpc++/generic/async_generic_service.h \
+include/grpc++/generic/generic_stub.h \
 include/grpc++/impl/call.h \
 include/grpc++/impl/client_unary_call.h \
 include/grpc++/impl/grpc_library.h \
-include/grpc++/impl/internal_stub.h \
 include/grpc++/impl/proto_utils.h \
 include/grpc++/impl/rpc_method.h \
 include/grpc++/impl/rpc_service_method.h \
@@ -794,13 +785,20 @@ include/grpc++/server.h \
 include/grpc++/server_builder.h \
 include/grpc++/server_context.h \
 include/grpc++/server_credentials.h \
-include/grpc++/slice.h \
-include/grpc++/status.h \
-include/grpc++/status_code_enum.h \
-include/grpc++/stream.h \
-include/grpc++/stub_options.h \
-include/grpc++/thread_pool_interface.h \
-include/grpc++/time.h
+include/grpc++/support/async_stream.h \
+include/grpc++/support/async_unary_call.h \
+include/grpc++/support/auth_context.h \
+include/grpc++/support/byte_buffer.h \
+include/grpc++/support/channel_arguments.h \
+include/grpc++/support/config.h \
+include/grpc++/support/config_protobuf.h \
+include/grpc++/support/slice.h \
+include/grpc++/support/status.h \
+include/grpc++/support/status_code_enum.h \
+include/grpc++/support/string_ref.h \
+include/grpc++/support/stub_options.h \
+include/grpc++/support/sync_stream.h \
+include/grpc++/support/time.h
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
diff --git a/tools/doxygen/Doxyfile.c++.internal b/tools/doxygen/Doxyfile.c++.internal
index cd1279e2a66f69b4d2a87ddf8f38ae70f140b327..84b13f94a7e26ebfa7a7138c41d8c101204e1499 100644
--- a/tools/doxygen/Doxyfile.c++.internal
+++ b/tools/doxygen/Doxyfile.c++.internal
@@ -760,25 +760,16 @@ WARN_LOGFILE           =
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
-INPUT                  = include/grpc++/async_generic_service.h \
-include/grpc++/async_unary_call.h \
-include/grpc++/auth_context.h \
-include/grpc++/byte_buffer.h \
-include/grpc++/channel_arguments.h \
-include/grpc++/channel_interface.h \
+INPUT                  = include/grpc++/channel.h \
 include/grpc++/client_context.h \
 include/grpc++/completion_queue.h \
-include/grpc++/config.h \
-include/grpc++/config_protobuf.h \
 include/grpc++/create_channel.h \
 include/grpc++/credentials.h \
-include/grpc++/dynamic_thread_pool.h \
-include/grpc++/fixed_size_thread_pool.h \
-include/grpc++/generic_stub.h \
+include/grpc++/generic/async_generic_service.h \
+include/grpc++/generic/generic_stub.h \
 include/grpc++/impl/call.h \
 include/grpc++/impl/client_unary_call.h \
 include/grpc++/impl/grpc_library.h \
-include/grpc++/impl/internal_stub.h \
 include/grpc++/impl/proto_utils.h \
 include/grpc++/impl/rpc_method.h \
 include/grpc++/impl/rpc_service_method.h \
@@ -794,18 +785,28 @@ include/grpc++/server.h \
 include/grpc++/server_builder.h \
 include/grpc++/server_context.h \
 include/grpc++/server_credentials.h \
-include/grpc++/slice.h \
-include/grpc++/status.h \
-include/grpc++/status_code_enum.h \
-include/grpc++/stream.h \
-include/grpc++/stub_options.h \
-include/grpc++/thread_pool_interface.h \
-include/grpc++/time.h \
+include/grpc++/support/async_stream.h \
+include/grpc++/support/async_unary_call.h \
+include/grpc++/support/auth_context.h \
+include/grpc++/support/byte_buffer.h \
+include/grpc++/support/channel_arguments.h \
+include/grpc++/support/config.h \
+include/grpc++/support/config_protobuf.h \
+include/grpc++/support/slice.h \
+include/grpc++/support/status.h \
+include/grpc++/support/status_code_enum.h \
+include/grpc++/support/string_ref.h \
+include/grpc++/support/stub_options.h \
+include/grpc++/support/sync_stream.h \
+include/grpc++/support/time.h \
 src/cpp/client/secure_credentials.h \
 src/cpp/common/secure_auth_context.h \
 src/cpp/server/secure_server_credentials.h \
-src/cpp/client/channel.h \
+src/cpp/client/create_channel_internal.h \
 src/cpp/common/create_auth_context.h \
+src/cpp/server/dynamic_thread_pool.h \
+src/cpp/server/fixed_size_thread_pool.h \
+src/cpp/server/thread_pool_interface.h \
 src/cpp/client/secure_channel_arguments.cc \
 src/cpp/client/secure_credentials.cc \
 src/cpp/common/auth_property_iterator.cc \
@@ -816,10 +817,10 @@ src/cpp/client/channel.cc \
 src/cpp/client/channel_arguments.cc \
 src/cpp/client/client_context.cc \
 src/cpp/client/create_channel.cc \
+src/cpp/client/create_channel_internal.cc \
 src/cpp/client/credentials.cc \
 src/cpp/client/generic_stub.cc \
 src/cpp/client/insecure_credentials.cc \
-src/cpp/client/internal_stub.cc \
 src/cpp/common/call.cc \
 src/cpp/common/completion_queue.cc \
 src/cpp/common/rpc_method.cc \
@@ -836,6 +837,7 @@ src/cpp/server/server_credentials.cc \
 src/cpp/util/byte_buffer.cc \
 src/cpp/util/slice.cc \
 src/cpp/util/status.cc \
+src/cpp/util/string_ref.cc \
 src/cpp/util/time.cc
 
 # This tag can be used to specify the character encoding of the source files
diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal
index 325a293e04ee13bf7bd3a016826f108564b3fb52..06f0f4ee834e43d4d687d5252709dc0c96f799e7 100644
--- a/tools/doxygen/Doxyfile.core.internal
+++ b/tools/doxygen/Doxyfile.core.internal
@@ -780,7 +780,7 @@ src/core/tsi/fake_transport_security.h \
 src/core/tsi/ssl_transport_security.h \
 src/core/tsi/transport_security.h \
 src/core/tsi/transport_security_interface.h \
-src/core/channel/census_filter.h \
+src/core/census/grpc_filter.h \
 src/core/channel/channel_args.h \
 src/core/channel/channel_stack.h \
 src/core/channel/client_channel.h \
@@ -846,6 +846,8 @@ src/core/json/json_reader.h \
 src/core/json/json_writer.h \
 src/core/profiling/timers.h \
 src/core/profiling/timers_preciseclock.h \
+src/core/statistics/census_interface.h \
+src/core/statistics/census_rpc_stats.h \
 src/core/surface/byte_buffer_queue.h \
 src/core/surface/call.h \
 src/core/surface/channel.h \
@@ -904,6 +906,7 @@ src/core/tsi/fake_transport_security.c \
 src/core/tsi/ssl_transport_security.c \
 src/core/tsi/transport_security.c \
 src/core/census/grpc_context.c \
+src/core/census/grpc_filter.c \
 src/core/channel/channel_args.c \
 src/core/channel/channel_stack.c \
 src/core/channel/client_channel.c \
diff --git a/tools/jenkins/run_jenkins.sh b/tools/jenkins/run_jenkins.sh
index 1ef7bb1ba091fab59b0281410c5cf25012dd699b..0f15835ea88c6754f985468ec88f930485760ff7 100755
--- a/tools/jenkins/run_jenkins.sh
+++ b/tools/jenkins/run_jenkins.sh
@@ -89,8 +89,12 @@ then
     bash -l /var/local/jenkins/grpc/tools/jenkins/docker_run_jenkins.sh || DOCKER_FAILED="true"
 
   DOCKER_CID=`cat docker.cid`
-  docker kill $DOCKER_CID
+  # forcefully kill the instance if it's still running, otherwise
+  # continue 
+  # (failure to kill something that's already dead => things are dead)
+  docker kill $DOCKER_CID || true
   docker cp $DOCKER_CID:/var/local/git/grpc/report.xml $git_root
+  # TODO(ctiller): why?
   sleep 4
   docker rm $DOCKER_CID || true
 elif [ "$platform" == "interop" ]
diff --git a/tools/run_tests/jobset.py b/tools/run_tests/jobset.py
index 538deac0e3eedab58d0c05a9688db85e6d36f5e3..79dde55d6f22e046d88b52296ab2408ea6a8cf45 100755
--- a/tools/run_tests/jobset.py
+++ b/tools/run_tests/jobset.py
@@ -96,12 +96,12 @@ def message(tag, msg, explanatory_text=None, do_newline=False):
     return
   message.old_tag = tag
   message.old_msg = msg
-  if platform.system() == 'Windows' or not sys.stdout.isatty():
-    if explanatory_text:
-      print explanatory_text
-    print '%s: %s' % (tag, msg)
-    return
   try:
+    if platform.system() == 'Windows' or not sys.stdout.isatty():
+      if explanatory_text:
+        print explanatory_text
+      print '%s: %s' % (tag, msg)
+      return
     sys.stdout.write('%s%s%s\x1b[%d;%dm%s\x1b[0m: %s%s' % (
         _BEGINNING_OF_LINE,
         _CLEAR_LINE,
@@ -174,6 +174,7 @@ class Job(object):
     for k, v in add_env.iteritems():
       env[k] = v
     self._start = time.time()
+    print spec.cmdline
     self._process = subprocess.Popen(args=spec.cmdline,
                                      stderr=subprocess.STDOUT,
                                      stdout=self._tempfile,
diff --git a/tools/run_tests/run_python.sh b/tools/run_tests/run_python.sh
index 6f80219b0e7fd4118fd511b7c3cfb1ef64eb29cd..858f30080098ccdefea53056063fee571579c190 100755
--- a/tools/run_tests/run_python.sh
+++ b/tools/run_tests/run_python.sh
@@ -39,4 +39,12 @@ export LD_LIBRARY_PATH=$ROOT/libs/$CONFIG
 export DYLD_LIBRARY_PATH=$ROOT/libs/$CONFIG
 export PATH=$ROOT/bins/$CONFIG:$ROOT/bins/$CONFIG/protobuf:$PATH
 source "python"$PYVER"_virtual_environment"/bin/activate
-"python"$PYVER $GRPCIO_TEST/setup.py test -a "-n8 --cov=grpc --junitxml=./report.xml"
+
+# TODO(atash): These tests don't currently run under py.test and thus don't
+# appear under the coverage report. Find a way to get these tests to work with
+# py.test (or find another tool or *something*) that's acceptable to the rest of
+# the team...
+"python"$PYVER -m grpc_test._core_over_links_base_interface_test
+"python"$PYVER -m grpc_test.framework.core._base_interface_test
+
+"python"$PYVER $GRPCIO_TEST/setup.py test -a "-n8 --cov=grpc --junitxml=./report.xml --timeout=300"
diff --git a/tools/run_tests/run_sanity.sh b/tools/run_tests/run_sanity.sh
index 18d5ba026e6eddc43fe5fd00e9f5091cf86e84ef..ac331b54d32e62bf4ac2aec22845c2187f107a61 100755
--- a/tools/run_tests/run_sanity.sh
+++ b/tools/run_tests/run_sanity.sh
@@ -44,6 +44,7 @@ git submodule > $submodules
 
 diff -u $submodules - << EOF
  05b155ff59114735ec8cd089f669c4c3d8f59029 third_party/gflags (v2.1.0-45-g05b155f)
+ c99458533a9b4c743ed51537e25989ea55944908 third_party/googletest (release-1.7.0)
  33dd08320648ac71d7d9d732be774ed3818dccc5 third_party/openssl (OpenSSL_1_0_2d)
  3e2c8a5dd79481e1d36572cdf65be93514ba6581 third_party/protobuf (v3.0.0-alpha-1-1048-g3e2c8a5)
  50893291621658f355bc5b4d450a8d06a563053d third_party/zlib (v1.2.8)
diff --git a/tools/run_tests/run_tests.py b/tools/run_tests/run_tests.py
index 1a6752c7845e2adac053b455303de6d6a7591988..beb43438e581bd5ca02136d86110be19d16ea934 100755
--- a/tools/run_tests/run_tests.py
+++ b/tools/run_tests/run_tests.py
@@ -123,27 +123,29 @@ class CLanguage(object):
   def __init__(self, make_target, test_lang):
     self.make_target = make_target
     self.platform = platform_string()
-    with open('tools/run_tests/tests.json') as f:
-      js = json.load(f)
-      self.binaries = [tgt
-                       for tgt in js
-                       if tgt['language'] == test_lang and
-                          platform_string() in tgt['platforms']]
-      self.ci_binaries = [tgt
-                         for tgt in js
-                         if tgt['language'] == test_lang and
-                            platform_string() in tgt['ci_platforms']]
+    self.test_lang = test_lang
 
   def test_specs(self, config, travis):
     out = []
-    for target in (self.ci_binaries if travis else self.binaries):
+    with open('tools/run_tests/tests.json') as f:
+      js = json.load(f)
+      platforms_str = 'ci_platforms' if travis else 'platforms'
+      binaries = [tgt
+                  for tgt in js
+                  if tgt['language'] == self.test_lang and
+                      config.build_config not in tgt['exclude_configs'] and
+                      platform_string() in tgt[platforms_str]]
+    for target in binaries:
       if travis and target['flaky']:
         continue
       if self.platform == 'windows':
         binary = 'vsprojects/test_bin/%s.exe' % (target['name'])
       else:
         binary = 'bins/%s/%s' % (config.build_config, target['name'])
-      out.append(config.job_spec([binary], [binary]))
+      if os.path.isfile(binary):
+        out.append(config.job_spec([binary], [binary]))
+      else:
+        print "\nWARNING: binary not found, skipping", binary
     return sorted(out)
 
   def make_targets(self):
@@ -482,12 +484,6 @@ build_steps.extend(set(
                    for cfg in build_configs
                    for l in languages
                    for cmdline in l.build_steps()))
-one_run = set(
-    spec
-    for config in run_configs
-    for language in languages
-    for spec in language.test_specs(config, args.travis)
-    if re.search(args.regex, spec.shortname))
 
 runs_per_test = args.runs_per_test
 forever = args.forever
@@ -583,6 +579,12 @@ def _build_and_run(
   _start_port_server(port_server_port)
   try:
     infinite_runs = runs_per_test == 0
+    one_run = set(
+      spec
+      for config in run_configs
+      for language in languages
+      for spec in language.test_specs(config, args.travis)
+      if re.search(args.regex, spec.shortname))
     # When running on travis, we want out test runs to be as similar as possible
     # for reproducibility purposes.
     if travis:
diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json
index 627e6ac8c86e2386eb7e786e465e2ee291d68f2a..7b57096b7d3c4343e07196384fa93dc1e14bd611 100644
--- a/tools/run_tests/sources_and_headers.json
+++ b/tools/run_tests/sources_and_headers.json
@@ -113,6 +113,20 @@
       "test/core/transport/chttp2/stream_map_test.c"
     ]
   }, 
+  {
+    "deps": [
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "compression_test", 
+    "src": [
+      "test/core/compression/compression_test.c"
+    ]
+  }, 
   {
     "deps": [
       "gpr", 
@@ -223,6 +237,15 @@
       "tools/codegen/core/gen_hpack_tables.c"
     ]
   }, 
+  {
+    "deps": [], 
+    "headers": [], 
+    "language": "c", 
+    "name": "gen_legal_metadata_characters", 
+    "src": [
+      "tools/codegen/core/gen_legal_metadata_characters.c"
+    ]
+  }, 
   {
     "deps": [
       "gpr", 
@@ -445,6 +468,20 @@
       "test/core/surface/byte_buffer_reader_test.c"
     ]
   }, 
+  {
+    "deps": [
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c", 
+    "name": "grpc_channel_args_test", 
+    "src": [
+      "test/core/channel/channel_args_test.c"
+    ]
+  }, 
   {
     "deps": [
       "gpr", 
@@ -1156,17 +1193,13 @@
   }, 
   {
     "deps": [
-      "gpr", 
-      "gpr_test_util", 
-      "grpc", 
-      "grpc++", 
-      "grpc_test_util"
+      "grpc++"
     ], 
     "headers": [], 
     "language": "c++", 
-    "name": "cxx_time_test", 
+    "name": "cxx_string_ref_test", 
     "src": [
-      "test/cpp/util/time_test.cc"
+      "test/cpp/util/string_ref_test.cc"
     ]
   }, 
   {
@@ -1179,9 +1212,9 @@
     ], 
     "headers": [], 
     "language": "c++", 
-    "name": "dynamic_thread_pool_test", 
+    "name": "cxx_time_test", 
     "src": [
-      "test/cpp/server/dynamic_thread_pool_test.cc"
+      "test/cpp/util/time_test.cc"
     ]
   }, 
   {
@@ -1200,21 +1233,6 @@
       "test/cpp/end2end/end2end_test.cc"
     ]
   }, 
-  {
-    "deps": [
-      "gpr", 
-      "gpr_test_util", 
-      "grpc", 
-      "grpc++", 
-      "grpc_test_util"
-    ], 
-    "headers": [], 
-    "language": "c++", 
-    "name": "fixed_size_thread_pool_test", 
-    "src": [
-      "test/cpp/server/fixed_size_thread_pool_test.cc"
-    ]
-  }, 
   {
     "deps": [
       "gpr", 
@@ -1606,6 +1624,22 @@
       "test/cpp/end2end/server_crash_test_client.cc"
     ]
   }, 
+  {
+    "deps": [
+      "gpr", 
+      "gpr_test_util", 
+      "grpc", 
+      "grpc++", 
+      "grpc++_test_util", 
+      "grpc_test_util"
+    ], 
+    "headers": [], 
+    "language": "c++", 
+    "name": "shutdown_test", 
+    "src": [
+      "test/cpp/end2end/shutdown_test.cc"
+    ]
+  }, 
   {
     "deps": [
       "gpr", 
@@ -12239,8 +12273,8 @@
       "include/grpc/grpc_security.h", 
       "include/grpc/status.h", 
       "src/core/census/context.h", 
+      "src/core/census/grpc_filter.h", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.h", 
       "src/core/channel/client_channel.h", 
@@ -12315,6 +12349,8 @@
       "src/core/security/secure_transport_setup.h", 
       "src/core/security/security_connector.h", 
       "src/core/security/security_context.h", 
+      "src/core/statistics/census_interface.h", 
+      "src/core/statistics/census_rpc_stats.h", 
       "src/core/surface/byte_buffer_queue.h", 
       "src/core/surface/call.h", 
       "src/core/surface/channel.h", 
@@ -12367,10 +12403,11 @@
       "src/core/census/context.c", 
       "src/core/census/context.h", 
       "src/core/census/grpc_context.c", 
+      "src/core/census/grpc_filter.c", 
+      "src/core/census/grpc_filter.h", 
       "src/core/census/initialize.c", 
       "src/core/census/record_stat.c", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.c", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.c", 
@@ -12530,6 +12567,8 @@
       "src/core/security/security_context.h", 
       "src/core/security/server_auth_filter.c", 
       "src/core/security/server_secure_chttp2.c", 
+      "src/core/statistics/census_interface.h", 
+      "src/core/statistics/census_rpc_stats.h", 
       "src/core/surface/byte_buffer.c", 
       "src/core/surface/byte_buffer_queue.c", 
       "src/core/surface/byte_buffer_queue.h", 
@@ -12713,8 +12752,8 @@
       "include/grpc/grpc.h", 
       "include/grpc/status.h", 
       "src/core/census/context.h", 
+      "src/core/census/grpc_filter.h", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.h", 
       "src/core/channel/client_channel.h", 
@@ -12780,6 +12819,8 @@
       "src/core/json/json_writer.h", 
       "src/core/profiling/timers.h", 
       "src/core/profiling/timers_preciseclock.h", 
+      "src/core/statistics/census_interface.h", 
+      "src/core/statistics/census_rpc_stats.h", 
       "src/core/surface/byte_buffer_queue.h", 
       "src/core/surface/call.h", 
       "src/core/surface/channel.h", 
@@ -12827,10 +12868,11 @@
       "src/core/census/context.c", 
       "src/core/census/context.h", 
       "src/core/census/grpc_context.c", 
+      "src/core/census/grpc_filter.c", 
+      "src/core/census/grpc_filter.h", 
       "src/core/census/initialize.c", 
       "src/core/census/record_stat.c", 
       "src/core/census/rpc_stat_id.h", 
-      "src/core/channel/census_filter.h", 
       "src/core/channel/channel_args.c", 
       "src/core/channel/channel_args.h", 
       "src/core/channel/channel_stack.c", 
@@ -12965,6 +13007,8 @@
       "src/core/profiling/stap_timers.c", 
       "src/core/profiling/timers.h", 
       "src/core/profiling/timers_preciseclock.h", 
+      "src/core/statistics/census_interface.h", 
+      "src/core/statistics/census_rpc_stats.h", 
       "src/core/surface/byte_buffer.c", 
       "src/core/surface/byte_buffer_queue.c", 
       "src/core/surface/byte_buffer_queue.h", 
@@ -13087,25 +13131,16 @@
       "grpc"
     ], 
     "headers": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
-      "include/grpc++/channel_arguments.h", 
-      "include/grpc++/channel_interface.h", 
+      "include/grpc++/channel.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
-      "include/grpc++/impl/internal_stub.h", 
       "include/grpc++/impl/proto_utils.h", 
       "include/grpc++/impl/rpc_method.h", 
       "include/grpc++/impl/rpc_service_method.h", 
@@ -13121,41 +13156,42 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
-      "src/cpp/client/channel.h", 
+      "include/grpc++/support/async_stream.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/string_ref.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/sync_stream.h", 
+      "include/grpc++/support/time.h", 
+      "src/cpp/client/create_channel_internal.h", 
       "src/cpp/client/secure_credentials.h", 
       "src/cpp/common/create_auth_context.h", 
       "src/cpp/common/secure_auth_context.h", 
-      "src/cpp/server/secure_server_credentials.h"
+      "src/cpp/server/dynamic_thread_pool.h", 
+      "src/cpp/server/fixed_size_thread_pool.h", 
+      "src/cpp/server/secure_server_credentials.h", 
+      "src/cpp/server/thread_pool_interface.h"
     ], 
     "language": "c++", 
     "name": "grpc++", 
     "src": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
-      "include/grpc++/channel_arguments.h", 
-      "include/grpc++/channel_interface.h", 
+      "include/grpc++/channel.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
-      "include/grpc++/impl/internal_stub.h", 
       "include/grpc++/impl/proto_utils.h", 
       "include/grpc++/impl/rpc_method.h", 
       "include/grpc++/impl/rpc_service_method.h", 
@@ -13171,22 +13207,29 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
+      "include/grpc++/support/async_stream.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/string_ref.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/sync_stream.h", 
+      "include/grpc++/support/time.h", 
       "src/cpp/client/channel.cc", 
-      "src/cpp/client/channel.h", 
       "src/cpp/client/channel_arguments.cc", 
       "src/cpp/client/client_context.cc", 
       "src/cpp/client/create_channel.cc", 
+      "src/cpp/client/create_channel_internal.cc", 
+      "src/cpp/client/create_channel_internal.h", 
       "src/cpp/client/credentials.cc", 
       "src/cpp/client/generic_stub.cc", 
       "src/cpp/client/insecure_credentials.cc", 
-      "src/cpp/client/internal_stub.cc", 
       "src/cpp/client/secure_channel_arguments.cc", 
       "src/cpp/client/secure_credentials.cc", 
       "src/cpp/client/secure_credentials.h", 
@@ -13202,7 +13245,9 @@
       "src/cpp/server/async_generic_service.cc", 
       "src/cpp/server/create_default_thread_pool.cc", 
       "src/cpp/server/dynamic_thread_pool.cc", 
+      "src/cpp/server/dynamic_thread_pool.h", 
       "src/cpp/server/fixed_size_thread_pool.cc", 
+      "src/cpp/server/fixed_size_thread_pool.h", 
       "src/cpp/server/insecure_server_credentials.cc", 
       "src/cpp/server/secure_server_credentials.cc", 
       "src/cpp/server/secure_server_credentials.h", 
@@ -13210,9 +13255,11 @@
       "src/cpp/server/server_builder.cc", 
       "src/cpp/server/server_context.cc", 
       "src/cpp/server/server_credentials.cc", 
+      "src/cpp/server/thread_pool_interface.h", 
       "src/cpp/util/byte_buffer.cc", 
       "src/cpp/util/slice.cc", 
       "src/cpp/util/status.cc", 
+      "src/cpp/util/string_ref.cc", 
       "src/cpp/util/time.cc"
     ]
   }, 
@@ -13261,25 +13308,16 @@
       "grpc_unsecure"
     ], 
     "headers": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
-      "include/grpc++/channel_arguments.h", 
-      "include/grpc++/channel_interface.h", 
+      "include/grpc++/channel.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
-      "include/grpc++/impl/internal_stub.h", 
       "include/grpc++/impl/proto_utils.h", 
       "include/grpc++/impl/rpc_method.h", 
       "include/grpc++/impl/rpc_service_method.h", 
@@ -13295,38 +13333,39 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
-      "src/cpp/client/channel.h", 
-      "src/cpp/common/create_auth_context.h"
+      "include/grpc++/support/async_stream.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/string_ref.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/sync_stream.h", 
+      "include/grpc++/support/time.h", 
+      "src/cpp/client/create_channel_internal.h", 
+      "src/cpp/common/create_auth_context.h", 
+      "src/cpp/server/dynamic_thread_pool.h", 
+      "src/cpp/server/fixed_size_thread_pool.h", 
+      "src/cpp/server/thread_pool_interface.h"
     ], 
     "language": "c++", 
     "name": "grpc++_unsecure", 
     "src": [
-      "include/grpc++/async_generic_service.h", 
-      "include/grpc++/async_unary_call.h", 
-      "include/grpc++/auth_context.h", 
-      "include/grpc++/byte_buffer.h", 
-      "include/grpc++/channel_arguments.h", 
-      "include/grpc++/channel_interface.h", 
+      "include/grpc++/channel.h", 
       "include/grpc++/client_context.h", 
       "include/grpc++/completion_queue.h", 
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
       "include/grpc++/create_channel.h", 
       "include/grpc++/credentials.h", 
-      "include/grpc++/dynamic_thread_pool.h", 
-      "include/grpc++/fixed_size_thread_pool.h", 
-      "include/grpc++/generic_stub.h", 
+      "include/grpc++/generic/async_generic_service.h", 
+      "include/grpc++/generic/generic_stub.h", 
       "include/grpc++/impl/call.h", 
       "include/grpc++/impl/client_unary_call.h", 
       "include/grpc++/impl/grpc_library.h", 
-      "include/grpc++/impl/internal_stub.h", 
       "include/grpc++/impl/proto_utils.h", 
       "include/grpc++/impl/rpc_method.h", 
       "include/grpc++/impl/rpc_service_method.h", 
@@ -13342,22 +13381,29 @@
       "include/grpc++/server_builder.h", 
       "include/grpc++/server_context.h", 
       "include/grpc++/server_credentials.h", 
-      "include/grpc++/slice.h", 
-      "include/grpc++/status.h", 
-      "include/grpc++/status_code_enum.h", 
-      "include/grpc++/stream.h", 
-      "include/grpc++/stub_options.h", 
-      "include/grpc++/thread_pool_interface.h", 
-      "include/grpc++/time.h", 
+      "include/grpc++/support/async_stream.h", 
+      "include/grpc++/support/async_unary_call.h", 
+      "include/grpc++/support/auth_context.h", 
+      "include/grpc++/support/byte_buffer.h", 
+      "include/grpc++/support/channel_arguments.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
+      "include/grpc++/support/slice.h", 
+      "include/grpc++/support/status.h", 
+      "include/grpc++/support/status_code_enum.h", 
+      "include/grpc++/support/string_ref.h", 
+      "include/grpc++/support/stub_options.h", 
+      "include/grpc++/support/sync_stream.h", 
+      "include/grpc++/support/time.h", 
       "src/cpp/client/channel.cc", 
-      "src/cpp/client/channel.h", 
       "src/cpp/client/channel_arguments.cc", 
       "src/cpp/client/client_context.cc", 
       "src/cpp/client/create_channel.cc", 
+      "src/cpp/client/create_channel_internal.cc", 
+      "src/cpp/client/create_channel_internal.h", 
       "src/cpp/client/credentials.cc", 
       "src/cpp/client/generic_stub.cc", 
       "src/cpp/client/insecure_credentials.cc", 
-      "src/cpp/client/internal_stub.cc", 
       "src/cpp/common/call.cc", 
       "src/cpp/common/completion_queue.cc", 
       "src/cpp/common/create_auth_context.h", 
@@ -13367,23 +13413,27 @@
       "src/cpp/server/async_generic_service.cc", 
       "src/cpp/server/create_default_thread_pool.cc", 
       "src/cpp/server/dynamic_thread_pool.cc", 
+      "src/cpp/server/dynamic_thread_pool.h", 
       "src/cpp/server/fixed_size_thread_pool.cc", 
+      "src/cpp/server/fixed_size_thread_pool.h", 
       "src/cpp/server/insecure_server_credentials.cc", 
       "src/cpp/server/server.cc", 
       "src/cpp/server/server_builder.cc", 
       "src/cpp/server/server_context.cc", 
       "src/cpp/server/server_credentials.cc", 
+      "src/cpp/server/thread_pool_interface.h", 
       "src/cpp/util/byte_buffer.cc", 
       "src/cpp/util/slice.cc", 
       "src/cpp/util/status.cc", 
+      "src/cpp/util/string_ref.cc", 
       "src/cpp/util/time.cc"
     ]
   }, 
   {
     "deps": [], 
     "headers": [
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
       "src/compiler/config.h", 
       "src/compiler/cpp_generator.h", 
       "src/compiler/cpp_generator_helpers.h", 
@@ -13401,8 +13451,8 @@
     "language": "c++", 
     "name": "grpc_plugin_support", 
     "src": [
-      "include/grpc++/config.h", 
-      "include/grpc++/config_protobuf.h", 
+      "include/grpc++/support/config.h", 
+      "include/grpc++/support/config_protobuf.h", 
       "src/compiler/config.h", 
       "src/compiler/cpp_generator.cc", 
       "src/compiler/cpp_generator.h", 
@@ -13432,7 +13482,9 @@
       "grpc_test_util"
     ], 
     "headers": [
-      "test/cpp/interop/client_helper.h"
+      "test/cpp/interop/client_helper.h", 
+      "test/proto/messages.grpc.pb.h", 
+      "test/proto/messages.pb.h"
     ], 
     "language": "c++", 
     "name": "interop_client_helper", 
diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json
index 6b3183d48ac39c39245f39059e9eca2b415c2638..f1c57190af22a8b47d18aa25c0dd30d406a2b48c 100644
--- a/tools/run_tests/tests.json
+++ b/tools/run_tests/tests.json
@@ -8,6 +8,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "alarm_heap_test", 
@@ -25,6 +26,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "alarm_list_test", 
@@ -42,6 +44,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "alarm_test", 
@@ -59,6 +62,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "alpn_test", 
@@ -76,6 +80,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "bin_encoder_test", 
@@ -93,6 +98,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_status_conversion_test", 
@@ -110,6 +116,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_stream_encoder_test", 
@@ -127,6 +134,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_stream_map_test", 
@@ -137,12 +145,31 @@
       "windows"
     ]
   }, 
+  {
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "compression_test", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ]
+  }, 
   {
     "ci_platforms": [
       "linux", 
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "dualstack_socket_test", 
@@ -158,6 +185,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "fd_conservation_posix_test", 
@@ -173,6 +201,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "fd_posix_test", 
@@ -188,6 +217,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "fling_stream_test", 
@@ -203,6 +233,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "fling_test", 
@@ -219,6 +250,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_cmdline_test", 
@@ -236,6 +268,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_env_test", 
@@ -253,6 +286,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_file_test", 
@@ -270,6 +304,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_histogram_test", 
@@ -287,6 +322,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_host_port_test", 
@@ -304,6 +340,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_log_test", 
@@ -321,6 +358,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_slice_buffer_test", 
@@ -338,6 +376,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_slice_test", 
@@ -355,6 +394,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_stack_lockfree_test", 
@@ -372,6 +412,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_string_test", 
@@ -389,6 +430,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_sync_test", 
@@ -406,6 +448,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_thd_test", 
@@ -423,6 +466,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_time_test", 
@@ -440,6 +484,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_tls_test", 
@@ -457,6 +502,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "gpr_useful_test", 
@@ -474,6 +520,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_auth_context_test", 
@@ -491,6 +538,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_base64_test", 
@@ -508,6 +556,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_byte_buffer_reader_test", 
@@ -525,6 +574,25 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c", 
+    "name": "grpc_channel_args_test", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ]
+  }, 
+  {
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_channel_stack_test", 
@@ -542,6 +610,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_completion_queue_test", 
@@ -559,6 +628,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_credentials_test", 
@@ -576,6 +646,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_json_token_test", 
@@ -593,6 +664,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_jwt_verifier_test", 
@@ -610,6 +682,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_security_connector_test", 
@@ -627,6 +700,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "grpc_stream_op_test", 
@@ -644,6 +718,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "hpack_parser_test", 
@@ -661,6 +736,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "hpack_table_test", 
@@ -678,6 +754,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "httpcli_format_request_test", 
@@ -695,6 +772,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "httpcli_parser_test", 
@@ -711,6 +789,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "httpcli_test", 
@@ -727,6 +806,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "json_rewrite_test", 
@@ -744,6 +824,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "json_test", 
@@ -761,6 +842,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "lame_client_test", 
@@ -778,6 +860,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "message_compress_test", 
@@ -795,6 +878,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "multi_init_test", 
@@ -812,6 +896,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "multiple_server_queues_test", 
@@ -829,6 +914,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "murmur_hash_test", 
@@ -846,6 +932,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "no_server_test", 
@@ -863,6 +950,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "resolve_address_test", 
@@ -880,6 +968,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "secure_endpoint_test", 
@@ -897,6 +986,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "sockaddr_utils_test", 
@@ -913,6 +1003,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "tcp_client_posix_test", 
@@ -928,6 +1019,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "tcp_posix_test", 
@@ -943,6 +1035,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "tcp_server_posix_test", 
@@ -959,6 +1052,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "time_averaged_stats_test", 
@@ -976,6 +1070,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "timeout_encoding_test", 
@@ -993,6 +1088,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "timers_test", 
@@ -1010,6 +1106,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "transport_metadata_test", 
@@ -1027,6 +1124,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "transport_security_test", 
@@ -1041,6 +1139,7 @@
     "ci_platforms": [
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "udp_server_test", 
@@ -1055,6 +1154,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "uri_parser_test", 
@@ -1072,6 +1172,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "async_end2end_test", 
@@ -1088,6 +1189,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "async_streaming_ping_pong_test", 
@@ -1103,6 +1205,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "async_unary_ping_pong_test", 
@@ -1119,6 +1222,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "auth_property_iterator_test", 
@@ -1136,6 +1240,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "channel_arguments_test", 
@@ -1153,6 +1258,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "cli_call_test", 
@@ -1169,6 +1275,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "client_crash_test", 
@@ -1185,6 +1292,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "credentials_test", 
@@ -1202,6 +1310,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "cxx_byte_buffer_test", 
@@ -1219,6 +1328,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "cxx_slice_test", 
@@ -1236,9 +1346,10 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
-    "name": "cxx_time_test", 
+    "name": "cxx_string_ref_test", 
     "platforms": [
       "linux", 
       "mac", 
@@ -1253,9 +1364,10 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
-    "name": "dynamic_thread_pool_test", 
+    "name": "cxx_time_test", 
     "platforms": [
       "linux", 
       "mac", 
@@ -1270,6 +1382,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "end2end_test", 
@@ -1287,23 +1400,7 @@
       "posix", 
       "windows"
     ], 
-    "flaky": false, 
-    "language": "c++", 
-    "name": "fixed_size_thread_pool_test", 
-    "platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ]
-  }, 
-  {
-    "ci_platforms": [
-      "linux", 
-      "mac", 
-      "posix", 
-      "windows"
-    ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "generic_end2end_test", 
@@ -1320,6 +1417,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "interop_test", 
@@ -1336,6 +1434,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "mock_test", 
@@ -1352,6 +1451,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "qps_openloop_test", 
@@ -1367,6 +1467,9 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [
+      "tsan"
+    ], 
     "flaky": false, 
     "language": "c++", 
     "name": "qps_test", 
@@ -1383,6 +1486,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "secure_auth_context_test", 
@@ -1399,6 +1503,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "server_crash_test", 
@@ -1415,6 +1520,25 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
+    "flaky": false, 
+    "language": "c++", 
+    "name": "shutdown_test", 
+    "platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ]
+  }, 
+  {
+    "ci_platforms": [
+      "linux", 
+      "mac", 
+      "posix", 
+      "windows"
+    ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "status_test", 
@@ -1431,6 +1555,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "sync_streaming_ping_pong_test", 
@@ -1446,6 +1571,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "sync_unary_ping_pong_test", 
@@ -1462,6 +1588,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "thread_stress_test", 
@@ -1479,6 +1606,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c++", 
     "name": "zookeeper_test", 
@@ -1495,6 +1623,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_bad_hostname_test", 
@@ -1511,6 +1640,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_cancel_after_accept_test", 
@@ -1527,6 +1657,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_cancel_after_accept_and_writes_closed_test", 
@@ -1543,6 +1674,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_cancel_after_invoke_test", 
@@ -1559,6 +1691,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_cancel_before_invoke_test", 
@@ -1575,6 +1708,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_cancel_in_a_vacuum_test", 
@@ -1591,6 +1725,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_census_simple_request_test", 
@@ -1607,6 +1742,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_channel_connectivity_test", 
@@ -1623,6 +1759,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_default_host_test", 
@@ -1639,6 +1776,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_disappearing_server_test", 
@@ -1655,6 +1793,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test", 
@@ -1671,6 +1810,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_early_server_shutdown_finishes_tags_test", 
@@ -1687,6 +1827,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_empty_batch_test", 
@@ -1703,6 +1844,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_graceful_server_shutdown_test", 
@@ -1719,6 +1861,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_invoke_large_request_test", 
@@ -1735,6 +1878,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_max_concurrent_streams_test", 
@@ -1751,6 +1895,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_max_message_length_test", 
@@ -1767,6 +1912,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_no_op_test", 
@@ -1783,6 +1929,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_ping_pong_streaming_test", 
@@ -1799,6 +1946,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_registered_call_test", 
@@ -1815,6 +1963,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_response_with_binary_metadata_and_payload_test", 
@@ -1831,6 +1980,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_response_with_metadata_and_payload_test", 
@@ -1847,6 +1997,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_response_with_payload_test", 
@@ -1863,6 +2014,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_response_with_payload_and_call_creds_test", 
@@ -1879,6 +2031,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test", 
@@ -1895,6 +2048,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_with_compressed_payload_test", 
@@ -1911,6 +2065,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_with_flags_test", 
@@ -1927,6 +2082,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_with_large_metadata_test", 
@@ -1943,6 +2099,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_request_with_payload_test", 
@@ -1959,6 +2116,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_server_finishes_request_test", 
@@ -1975,6 +2133,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_simple_delayed_request_test", 
@@ -1991,6 +2150,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_simple_request_test", 
@@ -2007,6 +2167,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fake_security_simple_request_with_high_initial_sequence_number_test", 
@@ -2024,6 +2185,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_bad_hostname_test", 
@@ -2041,6 +2203,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_after_accept_test", 
@@ -2058,6 +2221,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_after_accept_and_writes_closed_test", 
@@ -2075,6 +2239,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_after_invoke_test", 
@@ -2092,6 +2257,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_before_invoke_test", 
@@ -2109,6 +2275,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_in_a_vacuum_test", 
@@ -2126,6 +2293,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_census_simple_request_test", 
@@ -2143,6 +2311,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_channel_connectivity_test", 
@@ -2160,6 +2329,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_default_host_test", 
@@ -2177,6 +2347,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_disappearing_server_test", 
@@ -2194,6 +2365,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test", 
@@ -2211,6 +2383,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_early_server_shutdown_finishes_tags_test", 
@@ -2228,6 +2401,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_empty_batch_test", 
@@ -2245,6 +2419,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_graceful_server_shutdown_test", 
@@ -2262,6 +2437,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_invoke_large_request_test", 
@@ -2279,6 +2455,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_max_concurrent_streams_test", 
@@ -2296,6 +2473,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_max_message_length_test", 
@@ -2313,6 +2491,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_no_op_test", 
@@ -2330,6 +2509,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_ping_pong_streaming_test", 
@@ -2347,6 +2527,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_registered_call_test", 
@@ -2364,6 +2545,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_binary_metadata_and_payload_test", 
@@ -2381,6 +2563,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_metadata_and_payload_test", 
@@ -2398,6 +2581,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_payload_test", 
@@ -2415,6 +2599,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_payload_and_call_creds_test", 
@@ -2432,6 +2617,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test", 
@@ -2449,6 +2635,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_compressed_payload_test", 
@@ -2466,6 +2653,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_flags_test", 
@@ -2483,6 +2671,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_large_metadata_test", 
@@ -2500,6 +2689,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_payload_test", 
@@ -2517,6 +2707,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_server_finishes_request_test", 
@@ -2534,6 +2725,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_simple_delayed_request_test", 
@@ -2551,6 +2743,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_simple_request_test", 
@@ -2568,6 +2761,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_simple_request_with_high_initial_sequence_number_test", 
@@ -2585,6 +2779,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_bad_hostname_test", 
@@ -2602,6 +2797,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_after_accept_test", 
@@ -2619,6 +2815,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test", 
@@ -2636,6 +2833,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_after_invoke_test", 
@@ -2653,6 +2851,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_before_invoke_test", 
@@ -2670,6 +2869,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_in_a_vacuum_test", 
@@ -2687,6 +2887,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_census_simple_request_test", 
@@ -2704,6 +2905,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_channel_connectivity_test", 
@@ -2721,6 +2923,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_default_host_test", 
@@ -2738,6 +2941,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_disappearing_server_test", 
@@ -2755,6 +2959,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test", 
@@ -2772,6 +2977,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test", 
@@ -2789,6 +2995,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_empty_batch_test", 
@@ -2806,6 +3013,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_graceful_server_shutdown_test", 
@@ -2823,6 +3031,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_invoke_large_request_test", 
@@ -2840,6 +3049,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_max_concurrent_streams_test", 
@@ -2857,6 +3067,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_max_message_length_test", 
@@ -2874,6 +3085,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_no_op_test", 
@@ -2891,6 +3103,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_ping_pong_streaming_test", 
@@ -2908,6 +3121,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_registered_call_test", 
@@ -2925,6 +3139,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test", 
@@ -2942,6 +3157,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_metadata_and_payload_test", 
@@ -2959,6 +3175,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_payload_test", 
@@ -2976,6 +3193,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test", 
@@ -2993,6 +3211,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test", 
@@ -3010,6 +3229,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_compressed_payload_test", 
@@ -3027,6 +3247,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_flags_test", 
@@ -3044,6 +3265,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_large_metadata_test", 
@@ -3061,6 +3283,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_payload_test", 
@@ -3078,6 +3301,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_server_finishes_request_test", 
@@ -3095,6 +3319,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_simple_delayed_request_test", 
@@ -3112,6 +3337,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_simple_request_test", 
@@ -3129,6 +3355,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test", 
@@ -3145,6 +3372,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_bad_hostname_test", 
@@ -3160,6 +3388,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_after_accept_test", 
@@ -3175,6 +3404,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_test", 
@@ -3190,6 +3420,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_after_invoke_test", 
@@ -3205,6 +3436,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_before_invoke_test", 
@@ -3220,6 +3452,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_in_a_vacuum_test", 
@@ -3235,6 +3468,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_census_simple_request_test", 
@@ -3250,6 +3484,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_channel_connectivity_test", 
@@ -3265,6 +3500,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_disappearing_server_test", 
@@ -3280,6 +3516,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_test", 
@@ -3295,6 +3532,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_test", 
@@ -3310,6 +3548,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_empty_batch_test", 
@@ -3325,6 +3564,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_graceful_server_shutdown_test", 
@@ -3340,6 +3580,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_invoke_large_request_test", 
@@ -3355,6 +3596,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_max_concurrent_streams_test", 
@@ -3370,6 +3612,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_max_message_length_test", 
@@ -3385,6 +3628,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_no_op_test", 
@@ -3400,6 +3644,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_ping_pong_streaming_test", 
@@ -3415,6 +3660,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_registered_call_test", 
@@ -3430,6 +3676,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_test", 
@@ -3445,6 +3692,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_test", 
@@ -3460,6 +3708,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_payload_test", 
@@ -3475,6 +3724,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_payload_and_call_creds_test", 
@@ -3490,6 +3740,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_test", 
@@ -3505,6 +3756,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_compressed_payload_test", 
@@ -3520,6 +3772,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_flags_test", 
@@ -3535,6 +3788,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_large_metadata_test", 
@@ -3550,6 +3804,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_payload_test", 
@@ -3565,6 +3820,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_server_finishes_request_test", 
@@ -3580,6 +3836,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_simple_delayed_request_test", 
@@ -3595,6 +3852,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_simple_request_test", 
@@ -3610,6 +3868,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_test", 
@@ -3623,6 +3882,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_bad_hostname_test", 
@@ -3634,6 +3894,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_test", 
@@ -3645,6 +3906,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_test", 
@@ -3656,6 +3918,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_test", 
@@ -3667,6 +3930,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_test", 
@@ -3678,6 +3942,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_test", 
@@ -3689,6 +3954,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_census_simple_request_test", 
@@ -3700,6 +3966,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_channel_connectivity_test", 
@@ -3711,6 +3978,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_disappearing_server_test", 
@@ -3722,6 +3990,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_test", 
@@ -3733,6 +4002,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_test", 
@@ -3744,6 +4014,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_empty_batch_test", 
@@ -3755,6 +4026,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_test", 
@@ -3766,6 +4038,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_invoke_large_request_test", 
@@ -3777,6 +4050,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_test", 
@@ -3788,6 +4062,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_max_message_length_test", 
@@ -3799,6 +4074,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_no_op_test", 
@@ -3810,6 +4086,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_test", 
@@ -3821,6 +4098,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_registered_call_test", 
@@ -3832,6 +4110,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_test", 
@@ -3843,6 +4122,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_test", 
@@ -3854,6 +4134,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_test", 
@@ -3865,6 +4146,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_and_call_creds_test", 
@@ -3876,6 +4158,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_test", 
@@ -3887,6 +4170,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_test", 
@@ -3898,6 +4182,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_flags_test", 
@@ -3909,6 +4194,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_test", 
@@ -3920,6 +4206,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_payload_test", 
@@ -3931,6 +4218,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_server_finishes_request_test", 
@@ -3942,6 +4230,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_test", 
@@ -3953,6 +4242,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_test", 
@@ -3964,6 +4254,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_test", 
@@ -3975,6 +4266,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_bad_hostname_test", 
@@ -3986,6 +4278,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_after_accept_test", 
@@ -3997,6 +4290,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_test", 
@@ -4008,6 +4302,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_after_invoke_test", 
@@ -4019,6 +4314,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_before_invoke_test", 
@@ -4030,6 +4326,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_in_a_vacuum_test", 
@@ -4041,6 +4338,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_census_simple_request_test", 
@@ -4052,6 +4350,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_channel_connectivity_test", 
@@ -4063,6 +4362,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_default_host_test", 
@@ -4074,6 +4374,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_disappearing_server_test", 
@@ -4085,6 +4386,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test", 
@@ -4096,6 +4398,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_test", 
@@ -4107,6 +4410,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_empty_batch_test", 
@@ -4118,6 +4422,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_graceful_server_shutdown_test", 
@@ -4129,6 +4434,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_invoke_large_request_test", 
@@ -4140,6 +4446,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_max_concurrent_streams_test", 
@@ -4151,6 +4458,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_max_message_length_test", 
@@ -4162,6 +4470,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_no_op_test", 
@@ -4173,6 +4482,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_ping_pong_streaming_test", 
@@ -4184,6 +4494,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_registered_call_test", 
@@ -4195,6 +4506,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test", 
@@ -4206,6 +4518,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_test", 
@@ -4217,6 +4530,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_payload_test", 
@@ -4228,6 +4542,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_payload_and_call_creds_test", 
@@ -4239,6 +4554,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test", 
@@ -4250,6 +4566,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_compressed_payload_test", 
@@ -4261,6 +4578,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_flags_test", 
@@ -4272,6 +4590,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_large_metadata_test", 
@@ -4283,6 +4602,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_payload_test", 
@@ -4294,6 +4614,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_server_finishes_request_test", 
@@ -4305,6 +4626,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_simple_delayed_request_test", 
@@ -4316,6 +4638,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_simple_request_test", 
@@ -4327,6 +4650,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test", 
@@ -4340,6 +4664,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_bad_hostname_test", 
@@ -4356,6 +4681,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_after_accept_test", 
@@ -4372,6 +4698,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test", 
@@ -4388,6 +4715,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_after_invoke_test", 
@@ -4404,6 +4732,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_before_invoke_test", 
@@ -4420,6 +4749,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test", 
@@ -4436,6 +4766,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_census_simple_request_test", 
@@ -4452,6 +4783,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_default_host_test", 
@@ -4468,6 +4800,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_disappearing_server_test", 
@@ -4484,6 +4817,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test", 
@@ -4500,6 +4834,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test", 
@@ -4516,6 +4851,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_empty_batch_test", 
@@ -4532,6 +4868,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_graceful_server_shutdown_test", 
@@ -4548,6 +4885,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_invoke_large_request_test", 
@@ -4564,6 +4902,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_max_message_length_test", 
@@ -4580,6 +4919,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_no_op_test", 
@@ -4596,6 +4936,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_ping_pong_streaming_test", 
@@ -4612,6 +4953,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_registered_call_test", 
@@ -4628,6 +4970,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test", 
@@ -4644,6 +4987,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test", 
@@ -4660,6 +5004,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_payload_test", 
@@ -4676,6 +5021,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test", 
@@ -4692,6 +5038,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test", 
@@ -4708,6 +5055,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_with_large_metadata_test", 
@@ -4724,6 +5072,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_with_payload_test", 
@@ -4740,6 +5089,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_server_finishes_request_test", 
@@ -4756,6 +5106,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_simple_delayed_request_test", 
@@ -4772,6 +5123,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_simple_request_test", 
@@ -4788,6 +5140,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test", 
@@ -4805,6 +5158,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_bad_hostname_test", 
@@ -4822,6 +5176,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_cancel_after_accept_test", 
@@ -4839,6 +5194,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test", 
@@ -4856,6 +5212,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_cancel_after_invoke_test", 
@@ -4873,6 +5230,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_cancel_before_invoke_test", 
@@ -4890,6 +5248,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test", 
@@ -4907,6 +5266,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_census_simple_request_test", 
@@ -4924,6 +5284,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_channel_connectivity_test", 
@@ -4941,6 +5302,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_default_host_test", 
@@ -4958,6 +5320,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_disappearing_server_test", 
@@ -4975,6 +5338,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test", 
@@ -4992,6 +5356,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test", 
@@ -5009,6 +5374,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_empty_batch_test", 
@@ -5026,6 +5392,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_graceful_server_shutdown_test", 
@@ -5043,6 +5410,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_invoke_large_request_test", 
@@ -5060,6 +5428,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_max_concurrent_streams_test", 
@@ -5077,6 +5446,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_max_message_length_test", 
@@ -5094,6 +5464,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_no_op_test", 
@@ -5111,6 +5482,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_ping_pong_streaming_test", 
@@ -5128,6 +5500,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_registered_call_test", 
@@ -5145,6 +5518,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test", 
@@ -5162,6 +5536,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test", 
@@ -5179,6 +5554,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_response_with_payload_test", 
@@ -5196,6 +5572,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test", 
@@ -5213,6 +5590,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test", 
@@ -5230,6 +5608,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_with_compressed_payload_test", 
@@ -5247,6 +5626,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_with_flags_test", 
@@ -5264,6 +5644,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_with_large_metadata_test", 
@@ -5281,6 +5662,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_request_with_payload_test", 
@@ -5298,6 +5680,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_server_finishes_request_test", 
@@ -5315,6 +5698,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_simple_delayed_request_test", 
@@ -5332,6 +5716,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_simple_request_test", 
@@ -5349,6 +5734,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test", 
@@ -5363,6 +5749,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_bad_hostname_test", 
@@ -5374,6 +5761,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_test", 
@@ -5385,6 +5773,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_after_accept_and_writes_closed_test", 
@@ -5396,6 +5785,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_after_invoke_test", 
@@ -5407,6 +5797,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_before_invoke_test", 
@@ -5418,6 +5809,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_cancel_in_a_vacuum_test", 
@@ -5429,6 +5821,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_census_simple_request_test", 
@@ -5440,6 +5833,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_channel_connectivity_test", 
@@ -5451,6 +5845,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_default_host_test", 
@@ -5462,6 +5857,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_disappearing_server_test", 
@@ -5473,6 +5869,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_test", 
@@ -5484,6 +5881,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_early_server_shutdown_finishes_tags_test", 
@@ -5495,6 +5893,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_empty_batch_test", 
@@ -5506,6 +5905,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_graceful_server_shutdown_test", 
@@ -5517,6 +5917,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_invoke_large_request_test", 
@@ -5528,6 +5929,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_max_concurrent_streams_test", 
@@ -5539,6 +5941,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_max_message_length_test", 
@@ -5550,6 +5953,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_no_op_test", 
@@ -5561,6 +5965,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_ping_pong_streaming_test", 
@@ -5572,6 +5977,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_registered_call_test", 
@@ -5583,6 +5989,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_binary_metadata_and_payload_test", 
@@ -5594,6 +6001,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_metadata_and_payload_test", 
@@ -5605,6 +6013,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_test", 
@@ -5616,6 +6025,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_payload_and_call_creds_test", 
@@ -5627,6 +6037,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_test", 
@@ -5638,6 +6049,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_compressed_payload_test", 
@@ -5649,6 +6061,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_flags_test", 
@@ -5660,6 +6073,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_large_metadata_test", 
@@ -5671,6 +6085,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_request_with_payload_test", 
@@ -5682,6 +6097,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_server_finishes_request_test", 
@@ -5693,6 +6109,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_simple_delayed_request_test", 
@@ -5704,6 +6121,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_simple_request_test", 
@@ -5715,6 +6133,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_poll_simple_request_with_high_initial_sequence_number_test", 
@@ -5728,6 +6147,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test", 
@@ -5744,6 +6164,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test", 
@@ -5760,6 +6181,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test", 
@@ -5776,6 +6198,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test", 
@@ -5792,6 +6215,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test", 
@@ -5808,6 +6232,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test", 
@@ -5824,6 +6249,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test", 
@@ -5840,6 +6266,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_default_host_test", 
@@ -5856,6 +6283,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test", 
@@ -5872,6 +6300,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test", 
@@ -5888,6 +6317,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test", 
@@ -5904,6 +6334,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test", 
@@ -5920,6 +6351,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test", 
@@ -5936,6 +6368,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test", 
@@ -5952,6 +6385,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test", 
@@ -5968,6 +6402,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_no_op_test", 
@@ -5984,6 +6419,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test", 
@@ -6000,6 +6436,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_registered_call_test", 
@@ -6016,6 +6453,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test", 
@@ -6032,6 +6470,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test", 
@@ -6048,6 +6487,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test", 
@@ -6064,6 +6504,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test", 
@@ -6080,6 +6521,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test", 
@@ -6096,6 +6538,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test", 
@@ -6112,6 +6555,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test", 
@@ -6128,6 +6572,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test", 
@@ -6144,6 +6589,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test", 
@@ -6160,6 +6606,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_request_test", 
@@ -6176,6 +6623,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test", 
@@ -6192,6 +6640,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test", 
@@ -6208,6 +6657,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test", 
@@ -6224,6 +6674,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test", 
@@ -6240,6 +6691,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test", 
@@ -6256,6 +6708,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test", 
@@ -6272,6 +6725,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test", 
@@ -6288,6 +6742,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test", 
@@ -6304,6 +6759,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test", 
@@ -6320,6 +6776,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_default_host_test", 
@@ -6336,6 +6793,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test", 
@@ -6352,6 +6810,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test", 
@@ -6368,6 +6827,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test", 
@@ -6384,6 +6844,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test", 
@@ -6400,6 +6861,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test", 
@@ -6416,6 +6878,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test", 
@@ -6432,6 +6895,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test", 
@@ -6448,6 +6912,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test", 
@@ -6464,6 +6929,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_no_op_test", 
@@ -6480,6 +6946,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test", 
@@ -6496,6 +6963,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test", 
@@ -6512,6 +6980,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test", 
@@ -6528,6 +6997,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test", 
@@ -6544,6 +7014,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test", 
@@ -6560,6 +7031,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test", 
@@ -6576,6 +7048,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test", 
@@ -6592,6 +7065,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test", 
@@ -6608,6 +7082,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test", 
@@ -6624,6 +7099,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test", 
@@ -6640,6 +7116,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test", 
@@ -6656,6 +7133,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test", 
@@ -6672,6 +7150,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test", 
@@ -6688,6 +7167,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test", 
@@ -6704,6 +7184,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test", 
@@ -6720,6 +7201,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_bad_hostname_test", 
@@ -6736,6 +7218,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_after_accept_test", 
@@ -6752,6 +7235,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_after_accept_and_writes_closed_test", 
@@ -6768,6 +7252,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_after_invoke_test", 
@@ -6784,6 +7269,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_before_invoke_test", 
@@ -6800,6 +7286,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_in_a_vacuum_test", 
@@ -6816,6 +7303,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_census_simple_request_test", 
@@ -6832,6 +7320,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test", 
@@ -6848,6 +7337,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_early_server_shutdown_finishes_tags_test", 
@@ -6864,6 +7354,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_empty_batch_test", 
@@ -6880,6 +7371,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_graceful_server_shutdown_test", 
@@ -6896,6 +7388,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_invoke_large_request_test", 
@@ -6912,6 +7405,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_max_concurrent_streams_test", 
@@ -6928,6 +7422,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_max_message_length_test", 
@@ -6944,6 +7439,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_no_op_test", 
@@ -6960,6 +7456,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_ping_pong_streaming_test", 
@@ -6976,6 +7473,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_registered_call_test", 
@@ -6992,6 +7490,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test", 
@@ -7008,6 +7507,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_metadata_and_payload_test", 
@@ -7024,6 +7524,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_payload_test", 
@@ -7040,6 +7541,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_payload_and_call_creds_test", 
@@ -7056,6 +7558,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test", 
@@ -7072,6 +7575,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_compressed_payload_test", 
@@ -7088,6 +7592,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_flags_test", 
@@ -7104,6 +7609,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_large_metadata_test", 
@@ -7120,6 +7626,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_payload_test", 
@@ -7136,6 +7643,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_server_finishes_request_test", 
@@ -7152,6 +7660,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_simple_request_test", 
@@ -7168,6 +7677,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test", 
@@ -7184,6 +7694,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test", 
@@ -7200,6 +7711,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test", 
@@ -7216,6 +7728,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test", 
@@ -7232,6 +7745,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test", 
@@ -7248,6 +7762,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test", 
@@ -7264,6 +7779,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test", 
@@ -7280,6 +7796,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test", 
@@ -7296,6 +7813,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test", 
@@ -7312,6 +7830,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test", 
@@ -7328,6 +7847,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_empty_batch_test", 
@@ -7344,6 +7864,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test", 
@@ -7360,6 +7881,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test", 
@@ -7376,6 +7898,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test", 
@@ -7392,6 +7915,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_max_message_length_test", 
@@ -7408,6 +7932,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_no_op_test", 
@@ -7424,6 +7949,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test", 
@@ -7440,6 +7966,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_registered_call_test", 
@@ -7456,6 +7983,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test", 
@@ -7472,6 +8000,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test", 
@@ -7488,6 +8017,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test", 
@@ -7504,6 +8034,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test", 
@@ -7520,6 +8051,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test", 
@@ -7536,6 +8068,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test", 
@@ -7552,6 +8085,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test", 
@@ -7568,6 +8102,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test", 
@@ -7584,6 +8119,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test", 
@@ -7600,6 +8136,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test", 
@@ -7616,6 +8153,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_test", 
@@ -7632,6 +8170,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test", 
@@ -7649,6 +8188,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_bad_hostname_test", 
@@ -7666,6 +8206,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test", 
@@ -7683,6 +8224,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test", 
@@ -7700,6 +8242,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test", 
@@ -7717,6 +8260,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test", 
@@ -7734,6 +8278,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test", 
@@ -7751,6 +8296,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_census_simple_request_test", 
@@ -7768,6 +8314,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test", 
@@ -7785,6 +8332,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test", 
@@ -7802,6 +8350,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_empty_batch_test", 
@@ -7819,6 +8368,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test", 
@@ -7836,6 +8386,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_invoke_large_request_test", 
@@ -7853,6 +8404,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test", 
@@ -7870,6 +8422,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_max_message_length_test", 
@@ -7887,6 +8440,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_no_op_test", 
@@ -7904,6 +8458,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test", 
@@ -7921,6 +8476,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_registered_call_test", 
@@ -7938,6 +8494,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test", 
@@ -7955,6 +8512,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test", 
@@ -7972,6 +8530,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test", 
@@ -7989,6 +8548,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test", 
@@ -8006,6 +8566,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test", 
@@ -8023,6 +8584,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test", 
@@ -8040,6 +8602,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_flags_test", 
@@ -8057,6 +8620,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test", 
@@ -8074,6 +8638,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_payload_test", 
@@ -8091,6 +8656,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_server_finishes_request_test", 
@@ -8108,6 +8674,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_simple_request_test", 
@@ -8125,6 +8692,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test", 
@@ -8142,6 +8710,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_bad_hostname_unsecure_test", 
@@ -8159,6 +8728,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_after_accept_unsecure_test", 
@@ -8176,6 +8746,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -8193,6 +8764,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_after_invoke_unsecure_test", 
@@ -8210,6 +8782,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_before_invoke_unsecure_test", 
@@ -8227,6 +8800,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_cancel_in_a_vacuum_unsecure_test", 
@@ -8244,6 +8818,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_census_simple_request_unsecure_test", 
@@ -8261,6 +8836,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_channel_connectivity_unsecure_test", 
@@ -8278,6 +8854,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_default_host_unsecure_test", 
@@ -8295,6 +8872,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_disappearing_server_unsecure_test", 
@@ -8312,6 +8890,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -8329,6 +8908,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -8346,6 +8926,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_empty_batch_unsecure_test", 
@@ -8363,6 +8944,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_graceful_server_shutdown_unsecure_test", 
@@ -8380,6 +8962,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_invoke_large_request_unsecure_test", 
@@ -8397,6 +8980,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_max_concurrent_streams_unsecure_test", 
@@ -8414,6 +8998,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_max_message_length_unsecure_test", 
@@ -8431,6 +9016,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_no_op_unsecure_test", 
@@ -8448,6 +9034,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_ping_pong_streaming_unsecure_test", 
@@ -8465,6 +9052,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_registered_call_unsecure_test", 
@@ -8482,6 +9070,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -8499,6 +9088,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test", 
@@ -8516,6 +9106,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_payload_unsecure_test", 
@@ -8533,6 +9124,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -8550,6 +9142,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_compressed_payload_unsecure_test", 
@@ -8567,6 +9160,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_flags_unsecure_test", 
@@ -8584,6 +9178,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_large_metadata_unsecure_test", 
@@ -8601,6 +9196,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_request_with_payload_unsecure_test", 
@@ -8618,6 +9214,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_server_finishes_request_unsecure_test", 
@@ -8635,6 +9232,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_simple_delayed_request_unsecure_test", 
@@ -8652,6 +9250,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_simple_request_unsecure_test", 
@@ -8669,6 +9268,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -8686,6 +9286,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_bad_hostname_unsecure_test", 
@@ -8703,6 +9304,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_after_accept_unsecure_test", 
@@ -8720,6 +9322,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -8737,6 +9340,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_after_invoke_unsecure_test", 
@@ -8754,6 +9358,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_before_invoke_unsecure_test", 
@@ -8771,6 +9376,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test", 
@@ -8788,6 +9394,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_census_simple_request_unsecure_test", 
@@ -8805,6 +9412,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_channel_connectivity_unsecure_test", 
@@ -8822,6 +9430,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_default_host_unsecure_test", 
@@ -8839,6 +9448,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_disappearing_server_unsecure_test", 
@@ -8856,6 +9466,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -8873,6 +9484,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -8890,6 +9502,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_empty_batch_unsecure_test", 
@@ -8907,6 +9520,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test", 
@@ -8924,6 +9538,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_invoke_large_request_unsecure_test", 
@@ -8941,6 +9556,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_max_concurrent_streams_unsecure_test", 
@@ -8958,6 +9574,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_max_message_length_unsecure_test", 
@@ -8975,6 +9592,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_no_op_unsecure_test", 
@@ -8992,6 +9610,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_ping_pong_streaming_unsecure_test", 
@@ -9009,6 +9628,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_registered_call_unsecure_test", 
@@ -9026,6 +9646,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -9043,6 +9664,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test", 
@@ -9060,6 +9682,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_payload_unsecure_test", 
@@ -9077,6 +9700,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -9094,6 +9718,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test", 
@@ -9111,6 +9736,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_flags_unsecure_test", 
@@ -9128,6 +9754,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_large_metadata_unsecure_test", 
@@ -9145,6 +9772,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_request_with_payload_unsecure_test", 
@@ -9162,6 +9790,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_server_finishes_request_unsecure_test", 
@@ -9179,6 +9808,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_simple_delayed_request_unsecure_test", 
@@ -9196,6 +9826,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_simple_request_unsecure_test", 
@@ -9213,6 +9844,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -9229,6 +9861,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_bad_hostname_unsecure_test", 
@@ -9244,6 +9877,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_after_accept_unsecure_test", 
@@ -9259,6 +9893,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -9274,6 +9909,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_after_invoke_unsecure_test", 
@@ -9289,6 +9925,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_before_invoke_unsecure_test", 
@@ -9304,6 +9941,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_cancel_in_a_vacuum_unsecure_test", 
@@ -9319,6 +9957,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_census_simple_request_unsecure_test", 
@@ -9334,6 +9973,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_channel_connectivity_unsecure_test", 
@@ -9349,6 +9989,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_disappearing_server_unsecure_test", 
@@ -9364,6 +10005,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -9379,6 +10021,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -9394,6 +10037,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_empty_batch_unsecure_test", 
@@ -9409,6 +10053,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_graceful_server_shutdown_unsecure_test", 
@@ -9424,6 +10069,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_invoke_large_request_unsecure_test", 
@@ -9439,6 +10085,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_max_concurrent_streams_unsecure_test", 
@@ -9454,6 +10101,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_max_message_length_unsecure_test", 
@@ -9469,6 +10117,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_no_op_unsecure_test", 
@@ -9484,6 +10133,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_ping_pong_streaming_unsecure_test", 
@@ -9499,6 +10149,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_registered_call_unsecure_test", 
@@ -9514,6 +10165,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -9529,6 +10181,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_metadata_and_payload_unsecure_test", 
@@ -9544,6 +10197,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_payload_unsecure_test", 
@@ -9559,6 +10213,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -9574,6 +10229,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_compressed_payload_unsecure_test", 
@@ -9589,6 +10245,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_flags_unsecure_test", 
@@ -9604,6 +10261,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_large_metadata_unsecure_test", 
@@ -9619,6 +10277,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_request_with_payload_unsecure_test", 
@@ -9634,6 +10293,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_server_finishes_request_unsecure_test", 
@@ -9649,6 +10309,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_simple_delayed_request_unsecure_test", 
@@ -9664,6 +10325,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_simple_request_unsecure_test", 
@@ -9679,6 +10341,7 @@
       "mac", 
       "posix"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -9692,6 +10355,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_bad_hostname_unsecure_test", 
@@ -9703,6 +10367,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_unsecure_test", 
@@ -9714,6 +10379,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -9725,6 +10391,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_after_invoke_unsecure_test", 
@@ -9736,6 +10403,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_before_invoke_unsecure_test", 
@@ -9747,6 +10415,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_cancel_in_a_vacuum_unsecure_test", 
@@ -9758,6 +10427,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_census_simple_request_unsecure_test", 
@@ -9769,6 +10439,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_channel_connectivity_unsecure_test", 
@@ -9780,6 +10451,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_disappearing_server_unsecure_test", 
@@ -9791,6 +10463,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -9802,6 +10475,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -9813,6 +10487,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_empty_batch_unsecure_test", 
@@ -9824,6 +10499,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_graceful_server_shutdown_unsecure_test", 
@@ -9835,6 +10511,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_invoke_large_request_unsecure_test", 
@@ -9846,6 +10523,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_max_concurrent_streams_unsecure_test", 
@@ -9857,6 +10535,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_max_message_length_unsecure_test", 
@@ -9868,6 +10547,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_no_op_unsecure_test", 
@@ -9879,6 +10559,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_ping_pong_streaming_unsecure_test", 
@@ -9890,6 +10571,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_registered_call_unsecure_test", 
@@ -9901,6 +10583,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -9912,6 +10595,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_metadata_and_payload_unsecure_test", 
@@ -9923,6 +10607,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_payload_unsecure_test", 
@@ -9934,6 +10619,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -9945,6 +10631,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_compressed_payload_unsecure_test", 
@@ -9956,6 +10643,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_flags_unsecure_test", 
@@ -9967,6 +10655,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_large_metadata_unsecure_test", 
@@ -9978,6 +10667,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_request_with_payload_unsecure_test", 
@@ -9989,6 +10679,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_server_finishes_request_unsecure_test", 
@@ -10000,6 +10691,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_simple_delayed_request_unsecure_test", 
@@ -10011,6 +10703,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_unsecure_test", 
@@ -10022,6 +10715,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_uds_posix_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -10033,6 +10727,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_bad_hostname_unsecure_test", 
@@ -10044,6 +10739,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_after_accept_unsecure_test", 
@@ -10055,6 +10751,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -10066,6 +10763,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_after_invoke_unsecure_test", 
@@ -10077,6 +10775,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_before_invoke_unsecure_test", 
@@ -10088,6 +10787,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_cancel_in_a_vacuum_unsecure_test", 
@@ -10099,6 +10799,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_census_simple_request_unsecure_test", 
@@ -10110,6 +10811,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_channel_connectivity_unsecure_test", 
@@ -10121,6 +10823,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_default_host_unsecure_test", 
@@ -10132,6 +10835,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_disappearing_server_unsecure_test", 
@@ -10143,6 +10847,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -10154,6 +10859,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -10165,6 +10871,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_empty_batch_unsecure_test", 
@@ -10176,6 +10883,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_graceful_server_shutdown_unsecure_test", 
@@ -10187,6 +10895,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_invoke_large_request_unsecure_test", 
@@ -10198,6 +10907,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_max_concurrent_streams_unsecure_test", 
@@ -10209,6 +10919,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_max_message_length_unsecure_test", 
@@ -10220,6 +10931,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_no_op_unsecure_test", 
@@ -10231,6 +10943,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_ping_pong_streaming_unsecure_test", 
@@ -10242,6 +10955,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_registered_call_unsecure_test", 
@@ -10253,6 +10967,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -10264,6 +10979,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_metadata_and_payload_unsecure_test", 
@@ -10275,6 +10991,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_payload_unsecure_test", 
@@ -10286,6 +11003,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -10297,6 +11015,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_compressed_payload_unsecure_test", 
@@ -10308,6 +11027,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_flags_unsecure_test", 
@@ -10319,6 +11039,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_large_metadata_unsecure_test", 
@@ -10330,6 +11051,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_request_with_payload_unsecure_test", 
@@ -10341,6 +11063,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_server_finishes_request_unsecure_test", 
@@ -10352,6 +11075,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_simple_delayed_request_unsecure_test", 
@@ -10363,6 +11087,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_simple_request_unsecure_test", 
@@ -10374,6 +11099,7 @@
     "ci_platforms": [
       "linux"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_poll_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -10387,6 +11113,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_bad_hostname_unsecure_test", 
@@ -10403,6 +11130,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test", 
@@ -10419,6 +11147,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -10435,6 +11164,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test", 
@@ -10451,6 +11181,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test", 
@@ -10467,6 +11198,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test", 
@@ -10483,6 +11215,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_census_simple_request_unsecure_test", 
@@ -10499,6 +11232,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_default_host_unsecure_test", 
@@ -10515,6 +11249,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_disappearing_server_unsecure_test", 
@@ -10531,6 +11266,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -10547,6 +11283,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -10563,6 +11300,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_empty_batch_unsecure_test", 
@@ -10579,6 +11317,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test", 
@@ -10595,6 +11334,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test", 
@@ -10611,6 +11351,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_max_message_length_unsecure_test", 
@@ -10627,6 +11368,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_no_op_unsecure_test", 
@@ -10643,6 +11385,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test", 
@@ -10659,6 +11402,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_registered_call_unsecure_test", 
@@ -10675,6 +11419,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -10691,6 +11436,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test", 
@@ -10707,6 +11453,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test", 
@@ -10723,6 +11470,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -10739,6 +11487,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test", 
@@ -10755,6 +11504,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_request_with_payload_unsecure_test", 
@@ -10771,6 +11521,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test", 
@@ -10787,6 +11538,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test", 
@@ -10803,6 +11555,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_simple_request_unsecure_test", 
@@ -10819,6 +11572,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -10835,6 +11589,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_bad_hostname_unsecure_test", 
@@ -10851,6 +11606,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_after_accept_unsecure_test", 
@@ -10867,6 +11623,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -10883,6 +11640,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_after_invoke_unsecure_test", 
@@ -10899,6 +11657,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_before_invoke_unsecure_test", 
@@ -10915,6 +11674,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test", 
@@ -10931,6 +11691,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_census_simple_request_unsecure_test", 
@@ -10947,6 +11708,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -10963,6 +11725,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -10979,6 +11742,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_empty_batch_unsecure_test", 
@@ -10995,6 +11759,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_graceful_server_shutdown_unsecure_test", 
@@ -11011,6 +11776,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_invoke_large_request_unsecure_test", 
@@ -11027,6 +11793,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_max_concurrent_streams_unsecure_test", 
@@ -11043,6 +11810,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_max_message_length_unsecure_test", 
@@ -11059,6 +11827,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_no_op_unsecure_test", 
@@ -11075,6 +11844,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_ping_pong_streaming_unsecure_test", 
@@ -11091,6 +11861,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_registered_call_unsecure_test", 
@@ -11107,6 +11878,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -11123,6 +11895,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test", 
@@ -11139,6 +11912,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_payload_unsecure_test", 
@@ -11155,6 +11929,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -11171,6 +11946,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_compressed_payload_unsecure_test", 
@@ -11187,6 +11963,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_flags_unsecure_test", 
@@ -11203,6 +11980,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_large_metadata_unsecure_test", 
@@ -11219,6 +11997,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_request_with_payload_unsecure_test", 
@@ -11235,6 +12014,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_server_finishes_request_unsecure_test", 
@@ -11251,6 +12031,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_simple_request_unsecure_test", 
@@ -11267,6 +12048,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -11283,6 +12065,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test", 
@@ -11299,6 +12082,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test", 
@@ -11315,6 +12099,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -11331,6 +12116,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test", 
@@ -11347,6 +12133,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test", 
@@ -11363,6 +12150,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test", 
@@ -11379,6 +12167,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test", 
@@ -11395,6 +12184,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -11411,6 +12201,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -11427,6 +12218,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test", 
@@ -11443,6 +12235,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test", 
@@ -11459,6 +12252,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test", 
@@ -11475,6 +12269,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test", 
@@ -11491,6 +12286,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test", 
@@ -11507,6 +12303,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test", 
@@ -11523,6 +12320,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test", 
@@ -11539,6 +12337,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test", 
@@ -11555,6 +12354,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -11571,6 +12371,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test", 
@@ -11587,6 +12388,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test", 
@@ -11603,6 +12405,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -11619,6 +12422,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test", 
@@ -11635,6 +12439,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test", 
@@ -11651,6 +12456,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test", 
@@ -11667,6 +12473,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test", 
@@ -11683,6 +12490,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test", 
@@ -11699,6 +12507,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test", 
@@ -11715,6 +12524,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -11732,6 +12542,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test", 
@@ -11749,6 +12560,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test", 
@@ -11766,6 +12578,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test", 
@@ -11783,6 +12596,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test", 
@@ -11800,6 +12614,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test", 
@@ -11817,6 +12632,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test", 
@@ -11834,6 +12650,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test", 
@@ -11851,6 +12668,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test", 
@@ -11868,6 +12686,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test", 
@@ -11885,6 +12704,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test", 
@@ -11902,6 +12722,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test", 
@@ -11919,6 +12740,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test", 
@@ -11936,6 +12758,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test", 
@@ -11953,6 +12776,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test", 
@@ -11970,6 +12794,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test", 
@@ -11987,6 +12812,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test", 
@@ -12004,6 +12830,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test", 
@@ -12021,6 +12848,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test", 
@@ -12038,6 +12866,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test", 
@@ -12055,6 +12884,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test", 
@@ -12072,6 +12902,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test", 
@@ -12089,6 +12920,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test", 
@@ -12106,6 +12938,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test", 
@@ -12123,6 +12956,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test", 
@@ -12140,6 +12974,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test", 
@@ -12157,6 +12992,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test", 
@@ -12174,6 +13010,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test", 
@@ -12191,6 +13028,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test", 
@@ -12208,6 +13046,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "connection_prefix_bad_client_test", 
@@ -12225,6 +13064,7 @@
       "posix", 
       "windows"
     ], 
+    "exclude_configs": [], 
     "flaky": false, 
     "language": "c", 
     "name": "initial_settings_frame_bad_client_test", 
diff --git a/vsprojects/Grpc.mak b/vsprojects/Grpc.mak
index 96b3a79cf260c87900b39727c057c96589f9768c..e11653fbeb982934dd2251626d5b170df646adbc 100644
--- a/vsprojects/Grpc.mak
+++ b/vsprojects/Grpc.mak
@@ -80,10 +80,10 @@ $(OUT_DIR):
 build_libs: build_gpr build_gpr_test_util build_grpc build_grpc_test_util build_grpc_test_util_unsecure build_grpc_unsecure Debug\grpc_zookeeper.lib Debug\reconnect_server.lib build_grpc++ Debug\grpc++_test_config.lib Debug\grpc++_test_util.lib build_grpc++_unsecure Debug\interop_client_helper.lib Debug\interop_client_main.lib Debug\interop_server_helper.lib Debug\interop_server_main.lib Debug\qps.lib Debug\end2end_fixture_chttp2_fake_security.lib Debug\end2end_fixture_chttp2_fullstack.lib Debug\end2end_fixture_chttp2_fullstack_compression.lib Debug\end2end_fixture_chttp2_fullstack_with_proxy.lib Debug\end2end_fixture_chttp2_simple_ssl_fullstack.lib Debug\end2end_fixture_chttp2_simple_ssl_fullstack_with_proxy.lib Debug\end2end_fixture_chttp2_simple_ssl_with_oauth2_fullstack.lib Debug\end2end_fixture_chttp2_socket_pair.lib Debug\end2end_fixture_chttp2_socket_pair_one_byte_at_a_time.lib Debug\end2end_fixture_chttp2_socket_pair_with_grpc_trace.lib Debug\end2end_test_bad_hostname.lib Debug\end2end_test_cancel_after_accept.lib Debug\end2end_test_cancel_after_accept_and_writes_closed.lib Debug\end2end_test_cancel_after_invoke.lib Debug\end2end_test_cancel_before_invoke.lib Debug\end2end_test_cancel_in_a_vacuum.lib Debug\end2end_test_census_simple_request.lib Debug\end2end_test_channel_connectivity.lib Debug\end2end_test_default_host.lib Debug\end2end_test_disappearing_server.lib Debug\end2end_test_early_server_shutdown_finishes_inflight_calls.lib Debug\end2end_test_early_server_shutdown_finishes_tags.lib Debug\end2end_test_empty_batch.lib Debug\end2end_test_graceful_server_shutdown.lib Debug\end2end_test_invoke_large_request.lib Debug\end2end_test_max_concurrent_streams.lib Debug\end2end_test_max_message_length.lib Debug\end2end_test_no_op.lib Debug\end2end_test_ping_pong_streaming.lib Debug\end2end_test_registered_call.lib Debug\end2end_test_request_response_with_binary_metadata_and_payload.lib Debug\end2end_test_request_response_with_metadata_and_payload.lib Debug\end2end_test_request_response_with_payload.lib Debug\end2end_test_request_response_with_payload_and_call_creds.lib Debug\end2end_test_request_response_with_trailing_metadata_and_payload.lib Debug\end2end_test_request_with_compressed_payload.lib Debug\end2end_test_request_with_flags.lib Debug\end2end_test_request_with_large_metadata.lib Debug\end2end_test_request_with_payload.lib Debug\end2end_test_server_finishes_request.lib Debug\end2end_test_simple_delayed_request.lib Debug\end2end_test_simple_request.lib Debug\end2end_test_simple_request_with_high_initial_sequence_number.lib Debug\end2end_certs.lib Debug\bad_client_test.lib 
 buildtests: buildtests_c buildtests_cxx
 
-buildtests_c: alarm_heap_test.exe alarm_list_test.exe alarm_test.exe alpn_test.exe bin_encoder_test.exe chttp2_status_conversion_test.exe chttp2_stream_encoder_test.exe chttp2_stream_map_test.exe fling_client.exe fling_server.exe gpr_cmdline_test.exe gpr_env_test.exe gpr_file_test.exe gpr_histogram_test.exe gpr_host_port_test.exe gpr_log_test.exe gpr_slice_buffer_test.exe gpr_slice_test.exe gpr_stack_lockfree_test.exe gpr_string_test.exe gpr_sync_test.exe gpr_thd_test.exe gpr_time_test.exe gpr_tls_test.exe gpr_useful_test.exe grpc_auth_context_test.exe grpc_base64_test.exe grpc_byte_buffer_reader_test.exe grpc_channel_stack_test.exe grpc_completion_queue_test.exe grpc_credentials_test.exe grpc_json_token_test.exe grpc_jwt_verifier_test.exe grpc_security_connector_test.exe grpc_stream_op_test.exe hpack_parser_test.exe hpack_table_test.exe httpcli_format_request_test.exe httpcli_parser_test.exe json_rewrite.exe json_rewrite_test.exe json_test.exe lame_client_test.exe message_compress_test.exe multi_init_test.exe multiple_server_queues_test.exe murmur_hash_test.exe no_server_test.exe resolve_address_test.exe secure_endpoint_test.exe sockaddr_utils_test.exe time_averaged_stats_test.exe timeout_encoding_test.exe timers_test.exe transport_metadata_test.exe transport_security_test.exe uri_parser_test.exe chttp2_fake_security_bad_hostname_test.exe chttp2_fake_security_cancel_after_accept_test.exe chttp2_fake_security_cancel_after_accept_and_writes_closed_test.exe chttp2_fake_security_cancel_after_invoke_test.exe chttp2_fake_security_cancel_before_invoke_test.exe chttp2_fake_security_cancel_in_a_vacuum_test.exe chttp2_fake_security_census_simple_request_test.exe chttp2_fake_security_channel_connectivity_test.exe chttp2_fake_security_default_host_test.exe chttp2_fake_security_disappearing_server_test.exe chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fake_security_early_server_shutdown_finishes_tags_test.exe chttp2_fake_security_empty_batch_test.exe chttp2_fake_security_graceful_server_shutdown_test.exe chttp2_fake_security_invoke_large_request_test.exe chttp2_fake_security_max_concurrent_streams_test.exe chttp2_fake_security_max_message_length_test.exe chttp2_fake_security_no_op_test.exe chttp2_fake_security_ping_pong_streaming_test.exe chttp2_fake_security_registered_call_test.exe chttp2_fake_security_request_response_with_binary_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_payload_test.exe chttp2_fake_security_request_response_with_payload_and_call_creds_test.exe chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fake_security_request_with_compressed_payload_test.exe chttp2_fake_security_request_with_flags_test.exe chttp2_fake_security_request_with_large_metadata_test.exe chttp2_fake_security_request_with_payload_test.exe chttp2_fake_security_server_finishes_request_test.exe chttp2_fake_security_simple_delayed_request_test.exe chttp2_fake_security_simple_request_test.exe chttp2_fake_security_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_test.exe chttp2_fullstack_cancel_after_accept_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_cancel_after_invoke_test.exe chttp2_fullstack_cancel_before_invoke_test.exe chttp2_fullstack_cancel_in_a_vacuum_test.exe chttp2_fullstack_census_simple_request_test.exe chttp2_fullstack_channel_connectivity_test.exe chttp2_fullstack_default_host_test.exe chttp2_fullstack_disappearing_server_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_empty_batch_test.exe chttp2_fullstack_graceful_server_shutdown_test.exe chttp2_fullstack_invoke_large_request_test.exe chttp2_fullstack_max_concurrent_streams_test.exe chttp2_fullstack_max_message_length_test.exe chttp2_fullstack_no_op_test.exe chttp2_fullstack_ping_pong_streaming_test.exe chttp2_fullstack_registered_call_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_payload_test.exe chttp2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_request_with_compressed_payload_test.exe chttp2_fullstack_request_with_flags_test.exe chttp2_fullstack_request_with_large_metadata_test.exe chttp2_fullstack_request_with_payload_test.exe chttp2_fullstack_server_finishes_request_test.exe chttp2_fullstack_simple_delayed_request_test.exe chttp2_fullstack_simple_request_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_compression_bad_hostname_test.exe chttp2_fullstack_compression_cancel_after_accept_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_compression_cancel_after_invoke_test.exe chttp2_fullstack_compression_cancel_before_invoke_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_test.exe chttp2_fullstack_compression_census_simple_request_test.exe chttp2_fullstack_compression_channel_connectivity_test.exe chttp2_fullstack_compression_default_host_test.exe chttp2_fullstack_compression_disappearing_server_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_compression_empty_batch_test.exe chttp2_fullstack_compression_graceful_server_shutdown_test.exe chttp2_fullstack_compression_invoke_large_request_test.exe chttp2_fullstack_compression_max_concurrent_streams_test.exe chttp2_fullstack_compression_max_message_length_test.exe chttp2_fullstack_compression_no_op_test.exe chttp2_fullstack_compression_ping_pong_streaming_test.exe chttp2_fullstack_compression_registered_call_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_compression_request_with_compressed_payload_test.exe chttp2_fullstack_compression_request_with_flags_test.exe chttp2_fullstack_compression_request_with_large_metadata_test.exe chttp2_fullstack_compression_request_with_payload_test.exe chttp2_fullstack_compression_server_finishes_request_test.exe chttp2_fullstack_compression_simple_delayed_request_test.exe chttp2_fullstack_compression_simple_request_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_with_proxy_bad_hostname_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_with_proxy_cancel_after_invoke_test.exe chttp2_fullstack_with_proxy_cancel_before_invoke_test.exe chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test.exe chttp2_fullstack_with_proxy_census_simple_request_test.exe chttp2_fullstack_with_proxy_default_host_test.exe chttp2_fullstack_with_proxy_disappearing_server_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_with_proxy_empty_batch_test.exe chttp2_fullstack_with_proxy_graceful_server_shutdown_test.exe chttp2_fullstack_with_proxy_invoke_large_request_test.exe chttp2_fullstack_with_proxy_max_message_length_test.exe chttp2_fullstack_with_proxy_no_op_test.exe chttp2_fullstack_with_proxy_ping_pong_streaming_test.exe chttp2_fullstack_with_proxy_registered_call_test.exe chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_with_large_metadata_test.exe chttp2_fullstack_with_proxy_request_with_payload_test.exe chttp2_fullstack_with_proxy_server_finishes_request_test.exe chttp2_fullstack_with_proxy_simple_delayed_request_test.exe chttp2_fullstack_with_proxy_simple_request_test.exe chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_fullstack_bad_hostname_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_fullstack_census_simple_request_test.exe chttp2_simple_ssl_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_fullstack_default_host_test.exe chttp2_simple_ssl_fullstack_disappearing_server_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_fullstack_empty_batch_test.exe chttp2_simple_ssl_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_fullstack_max_message_length_test.exe chttp2_simple_ssl_fullstack_no_op_test.exe chttp2_simple_ssl_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_fullstack_registered_call_test.exe chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_fullstack_request_with_flags_test.exe chttp2_simple_ssl_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_fullstack_request_with_payload_test.exe chttp2_simple_ssl_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_fullstack_simple_request_test.exe chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_default_host_test.exe chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test.exe chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test.exe chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test.exe chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test.exe chttp2_simple_ssl_fullstack_with_proxy_no_op_test.exe chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test.exe chttp2_simple_ssl_fullstack_with_proxy_registered_call_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_with_oauth2_fullstack_default_host_test.exe chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test.exe chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test.exe chttp2_simple_ssl_with_oauth2_fullstack_no_op_test.exe chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_bad_hostname_test.exe chttp2_socket_pair_cancel_after_accept_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_cancel_after_invoke_test.exe chttp2_socket_pair_cancel_before_invoke_test.exe chttp2_socket_pair_cancel_in_a_vacuum_test.exe chttp2_socket_pair_census_simple_request_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_empty_batch_test.exe chttp2_socket_pair_graceful_server_shutdown_test.exe chttp2_socket_pair_invoke_large_request_test.exe chttp2_socket_pair_max_concurrent_streams_test.exe chttp2_socket_pair_max_message_length_test.exe chttp2_socket_pair_no_op_test.exe chttp2_socket_pair_ping_pong_streaming_test.exe chttp2_socket_pair_registered_call_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_payload_test.exe chttp2_socket_pair_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_request_with_compressed_payload_test.exe chttp2_socket_pair_request_with_flags_test.exe chttp2_socket_pair_request_with_large_metadata_test.exe chttp2_socket_pair_request_with_payload_test.exe chttp2_socket_pair_server_finishes_request_test.exe chttp2_socket_pair_simple_request_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_test.exe chttp2_socket_pair_with_grpc_trace_no_op_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_unsecure_test.exe chttp2_fullstack_cancel_after_accept_unsecure_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_census_simple_request_unsecure_test.exe chttp2_fullstack_channel_connectivity_unsecure_test.exe chttp2_fullstack_default_host_unsecure_test.exe chttp2_fullstack_disappearing_server_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_empty_batch_unsecure_test.exe chttp2_fullstack_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_invoke_large_request_unsecure_test.exe chttp2_fullstack_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_max_message_length_unsecure_test.exe chttp2_fullstack_no_op_unsecure_test.exe chttp2_fullstack_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_registered_call_unsecure_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_payload_unsecure_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_request_with_flags_unsecure_test.exe chttp2_fullstack_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_request_with_payload_unsecure_test.exe chttp2_fullstack_server_finishes_request_unsecure_test.exe chttp2_fullstack_simple_delayed_request_unsecure_test.exe chttp2_fullstack_simple_request_unsecure_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_fullstack_compression_bad_hostname_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_compression_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_compression_census_simple_request_unsecure_test.exe chttp2_fullstack_compression_channel_connectivity_unsecure_test.exe chttp2_fullstack_compression_default_host_unsecure_test.exe chttp2_fullstack_compression_disappearing_server_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_compression_empty_batch_unsecure_test.exe chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_compression_invoke_large_request_unsecure_test.exe chttp2_fullstack_compression_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_compression_max_message_length_unsecure_test.exe chttp2_fullstack_compression_no_op_unsecure_test.exe chttp2_fullstack_compression_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_compression_registered_call_unsecure_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_flags_unsecure_test.exe chttp2_fullstack_compression_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_compression_request_with_payload_unsecure_test.exe chttp2_fullstack_compression_server_finishes_request_unsecure_test.exe chttp2_fullstack_compression_simple_delayed_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_fullstack_with_proxy_bad_hostname_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_with_proxy_census_simple_request_unsecure_test.exe chttp2_fullstack_with_proxy_default_host_unsecure_test.exe chttp2_fullstack_with_proxy_disappearing_server_unsecure_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_with_proxy_empty_batch_unsecure_test.exe chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test.exe chttp2_fullstack_with_proxy_max_message_length_unsecure_test.exe chttp2_fullstack_with_proxy_no_op_unsecure_test.exe chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_with_proxy_registered_call_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_with_proxy_request_with_payload_unsecure_test.exe chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_bad_hostname_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_census_simple_request_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_empty_batch_unsecure_test.exe chttp2_socket_pair_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_invoke_large_request_unsecure_test.exe chttp2_socket_pair_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_max_message_length_unsecure_test.exe chttp2_socket_pair_no_op_unsecure_test.exe chttp2_socket_pair_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_registered_call_unsecure_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_request_with_flags_unsecure_test.exe chttp2_socket_pair_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_request_with_payload_unsecure_test.exe chttp2_socket_pair_server_finishes_request_unsecure_test.exe chttp2_socket_pair_simple_request_unsecure_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test.exe connection_prefix_bad_client_test.exe initial_settings_frame_bad_client_test.exe 
+buildtests_c: alarm_heap_test.exe alarm_list_test.exe alarm_test.exe alpn_test.exe bin_encoder_test.exe chttp2_status_conversion_test.exe chttp2_stream_encoder_test.exe chttp2_stream_map_test.exe compression_test.exe fling_client.exe fling_server.exe gpr_cmdline_test.exe gpr_env_test.exe gpr_file_test.exe gpr_histogram_test.exe gpr_host_port_test.exe gpr_log_test.exe gpr_slice_buffer_test.exe gpr_slice_test.exe gpr_stack_lockfree_test.exe gpr_string_test.exe gpr_sync_test.exe gpr_thd_test.exe gpr_time_test.exe gpr_tls_test.exe gpr_useful_test.exe grpc_auth_context_test.exe grpc_base64_test.exe grpc_byte_buffer_reader_test.exe grpc_channel_args_test.exe grpc_channel_stack_test.exe grpc_completion_queue_test.exe grpc_credentials_test.exe grpc_json_token_test.exe grpc_jwt_verifier_test.exe grpc_security_connector_test.exe grpc_stream_op_test.exe hpack_parser_test.exe hpack_table_test.exe httpcli_format_request_test.exe httpcli_parser_test.exe json_rewrite.exe json_rewrite_test.exe json_test.exe lame_client_test.exe message_compress_test.exe multi_init_test.exe multiple_server_queues_test.exe murmur_hash_test.exe no_server_test.exe resolve_address_test.exe secure_endpoint_test.exe sockaddr_utils_test.exe time_averaged_stats_test.exe timeout_encoding_test.exe timers_test.exe transport_metadata_test.exe transport_security_test.exe uri_parser_test.exe chttp2_fake_security_bad_hostname_test.exe chttp2_fake_security_cancel_after_accept_test.exe chttp2_fake_security_cancel_after_accept_and_writes_closed_test.exe chttp2_fake_security_cancel_after_invoke_test.exe chttp2_fake_security_cancel_before_invoke_test.exe chttp2_fake_security_cancel_in_a_vacuum_test.exe chttp2_fake_security_census_simple_request_test.exe chttp2_fake_security_channel_connectivity_test.exe chttp2_fake_security_default_host_test.exe chttp2_fake_security_disappearing_server_test.exe chttp2_fake_security_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fake_security_early_server_shutdown_finishes_tags_test.exe chttp2_fake_security_empty_batch_test.exe chttp2_fake_security_graceful_server_shutdown_test.exe chttp2_fake_security_invoke_large_request_test.exe chttp2_fake_security_max_concurrent_streams_test.exe chttp2_fake_security_max_message_length_test.exe chttp2_fake_security_no_op_test.exe chttp2_fake_security_ping_pong_streaming_test.exe chttp2_fake_security_registered_call_test.exe chttp2_fake_security_request_response_with_binary_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_metadata_and_payload_test.exe chttp2_fake_security_request_response_with_payload_test.exe chttp2_fake_security_request_response_with_payload_and_call_creds_test.exe chttp2_fake_security_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fake_security_request_with_compressed_payload_test.exe chttp2_fake_security_request_with_flags_test.exe chttp2_fake_security_request_with_large_metadata_test.exe chttp2_fake_security_request_with_payload_test.exe chttp2_fake_security_server_finishes_request_test.exe chttp2_fake_security_simple_delayed_request_test.exe chttp2_fake_security_simple_request_test.exe chttp2_fake_security_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_test.exe chttp2_fullstack_cancel_after_accept_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_cancel_after_invoke_test.exe chttp2_fullstack_cancel_before_invoke_test.exe chttp2_fullstack_cancel_in_a_vacuum_test.exe chttp2_fullstack_census_simple_request_test.exe chttp2_fullstack_channel_connectivity_test.exe chttp2_fullstack_default_host_test.exe chttp2_fullstack_disappearing_server_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_empty_batch_test.exe chttp2_fullstack_graceful_server_shutdown_test.exe chttp2_fullstack_invoke_large_request_test.exe chttp2_fullstack_max_concurrent_streams_test.exe chttp2_fullstack_max_message_length_test.exe chttp2_fullstack_no_op_test.exe chttp2_fullstack_ping_pong_streaming_test.exe chttp2_fullstack_registered_call_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_request_response_with_payload_test.exe chttp2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_request_with_compressed_payload_test.exe chttp2_fullstack_request_with_flags_test.exe chttp2_fullstack_request_with_large_metadata_test.exe chttp2_fullstack_request_with_payload_test.exe chttp2_fullstack_server_finishes_request_test.exe chttp2_fullstack_simple_delayed_request_test.exe chttp2_fullstack_simple_request_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_compression_bad_hostname_test.exe chttp2_fullstack_compression_cancel_after_accept_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_compression_cancel_after_invoke_test.exe chttp2_fullstack_compression_cancel_before_invoke_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_test.exe chttp2_fullstack_compression_census_simple_request_test.exe chttp2_fullstack_compression_channel_connectivity_test.exe chttp2_fullstack_compression_default_host_test.exe chttp2_fullstack_compression_disappearing_server_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_compression_empty_batch_test.exe chttp2_fullstack_compression_graceful_server_shutdown_test.exe chttp2_fullstack_compression_invoke_large_request_test.exe chttp2_fullstack_compression_max_concurrent_streams_test.exe chttp2_fullstack_compression_max_message_length_test.exe chttp2_fullstack_compression_no_op_test.exe chttp2_fullstack_compression_ping_pong_streaming_test.exe chttp2_fullstack_compression_registered_call_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_test.exe chttp2_fullstack_compression_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_compression_request_with_compressed_payload_test.exe chttp2_fullstack_compression_request_with_flags_test.exe chttp2_fullstack_compression_request_with_large_metadata_test.exe chttp2_fullstack_compression_request_with_payload_test.exe chttp2_fullstack_compression_server_finishes_request_test.exe chttp2_fullstack_compression_simple_delayed_request_test.exe chttp2_fullstack_compression_simple_request_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_with_proxy_bad_hostname_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe chttp2_fullstack_with_proxy_cancel_after_invoke_test.exe chttp2_fullstack_with_proxy_cancel_before_invoke_test.exe chttp2_fullstack_with_proxy_cancel_in_a_vacuum_test.exe chttp2_fullstack_with_proxy_census_simple_request_test.exe chttp2_fullstack_with_proxy_default_host_test.exe chttp2_fullstack_with_proxy_disappearing_server_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe chttp2_fullstack_with_proxy_empty_batch_test.exe chttp2_fullstack_with_proxy_graceful_server_shutdown_test.exe chttp2_fullstack_with_proxy_invoke_large_request_test.exe chttp2_fullstack_with_proxy_max_message_length_test.exe chttp2_fullstack_with_proxy_no_op_test.exe chttp2_fullstack_with_proxy_ping_pong_streaming_test.exe chttp2_fullstack_with_proxy_registered_call_test.exe chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe chttp2_fullstack_with_proxy_request_with_large_metadata_test.exe chttp2_fullstack_with_proxy_request_with_payload_test.exe chttp2_fullstack_with_proxy_server_finishes_request_test.exe chttp2_fullstack_with_proxy_simple_delayed_request_test.exe chttp2_fullstack_with_proxy_simple_request_test.exe chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_fullstack_bad_hostname_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_fullstack_census_simple_request_test.exe chttp2_simple_ssl_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_fullstack_default_host_test.exe chttp2_simple_ssl_fullstack_disappearing_server_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_fullstack_empty_batch_test.exe chttp2_simple_ssl_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_fullstack_max_message_length_test.exe chttp2_simple_ssl_fullstack_no_op_test.exe chttp2_simple_ssl_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_fullstack_registered_call_test.exe chttp2_simple_ssl_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_fullstack_request_with_flags_test.exe chttp2_simple_ssl_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_fullstack_request_with_payload_test.exe chttp2_simple_ssl_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_fullstack_simple_request_test.exe chttp2_simple_ssl_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_fullstack_with_proxy_bad_hostname_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_after_invoke_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_before_invoke_test.exe chttp2_simple_ssl_fullstack_with_proxy_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_fullstack_with_proxy_census_simple_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_default_host_test.exe chttp2_simple_ssl_fullstack_with_proxy_disappearing_server_test.exe chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_fullstack_with_proxy_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_fullstack_with_proxy_empty_batch_test.exe chttp2_simple_ssl_fullstack_with_proxy_graceful_server_shutdown_test.exe chttp2_simple_ssl_fullstack_with_proxy_invoke_large_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_max_message_length_test.exe chttp2_simple_ssl_fullstack_with_proxy_no_op_test.exe chttp2_simple_ssl_fullstack_with_proxy_ping_pong_streaming_test.exe chttp2_simple_ssl_fullstack_with_proxy_registered_call_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_with_large_metadata_test.exe chttp2_simple_ssl_fullstack_with_proxy_request_with_payload_test.exe chttp2_simple_ssl_fullstack_with_proxy_server_finishes_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_delayed_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_request_test.exe chttp2_simple_ssl_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_test.exe chttp2_simple_ssl_with_oauth2_fullstack_bad_hostname_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_accept_and_writes_closed_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_after_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_before_invoke_test.exe chttp2_simple_ssl_with_oauth2_fullstack_cancel_in_a_vacuum_test.exe chttp2_simple_ssl_with_oauth2_fullstack_census_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_channel_connectivity_test.exe chttp2_simple_ssl_with_oauth2_fullstack_default_host_test.exe chttp2_simple_ssl_with_oauth2_fullstack_disappearing_server_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_simple_ssl_with_oauth2_fullstack_early_server_shutdown_finishes_tags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_empty_batch_test.exe chttp2_simple_ssl_with_oauth2_fullstack_graceful_server_shutdown_test.exe chttp2_simple_ssl_with_oauth2_fullstack_invoke_large_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_concurrent_streams_test.exe chttp2_simple_ssl_with_oauth2_fullstack_max_message_length_test.exe chttp2_simple_ssl_with_oauth2_fullstack_no_op_test.exe chttp2_simple_ssl_with_oauth2_fullstack_ping_pong_streaming_test.exe chttp2_simple_ssl_with_oauth2_fullstack_registered_call_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_binary_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_payload_and_call_creds_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_response_with_trailing_metadata_and_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_compressed_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_flags_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_large_metadata_test.exe chttp2_simple_ssl_with_oauth2_fullstack_request_with_payload_test.exe chttp2_simple_ssl_with_oauth2_fullstack_server_finishes_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_delayed_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_test.exe chttp2_simple_ssl_with_oauth2_fullstack_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_bad_hostname_test.exe chttp2_socket_pair_cancel_after_accept_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_cancel_after_invoke_test.exe chttp2_socket_pair_cancel_before_invoke_test.exe chttp2_socket_pair_cancel_in_a_vacuum_test.exe chttp2_socket_pair_census_simple_request_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_empty_batch_test.exe chttp2_socket_pair_graceful_server_shutdown_test.exe chttp2_socket_pair_invoke_large_request_test.exe chttp2_socket_pair_max_concurrent_streams_test.exe chttp2_socket_pair_max_message_length_test.exe chttp2_socket_pair_no_op_test.exe chttp2_socket_pair_ping_pong_streaming_test.exe chttp2_socket_pair_registered_call_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_request_response_with_payload_test.exe chttp2_socket_pair_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_request_with_compressed_payload_test.exe chttp2_socket_pair_request_with_flags_test.exe chttp2_socket_pair_request_with_large_metadata_test.exe chttp2_socket_pair_request_with_payload_test.exe chttp2_socket_pair_server_finishes_request_test.exe chttp2_socket_pair_simple_request_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_test.exe chttp2_socket_pair_with_grpc_trace_no_op_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_and_call_creds_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_test.exe chttp2_fullstack_bad_hostname_unsecure_test.exe chttp2_fullstack_cancel_after_accept_unsecure_test.exe chttp2_fullstack_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_census_simple_request_unsecure_test.exe chttp2_fullstack_channel_connectivity_unsecure_test.exe chttp2_fullstack_default_host_unsecure_test.exe chttp2_fullstack_disappearing_server_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_empty_batch_unsecure_test.exe chttp2_fullstack_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_invoke_large_request_unsecure_test.exe chttp2_fullstack_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_max_message_length_unsecure_test.exe chttp2_fullstack_no_op_unsecure_test.exe chttp2_fullstack_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_registered_call_unsecure_test.exe chttp2_fullstack_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_response_with_payload_unsecure_test.exe chttp2_fullstack_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_request_with_flags_unsecure_test.exe chttp2_fullstack_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_request_with_payload_unsecure_test.exe chttp2_fullstack_server_finishes_request_unsecure_test.exe chttp2_fullstack_simple_delayed_request_unsecure_test.exe chttp2_fullstack_simple_request_unsecure_test.exe chttp2_fullstack_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_fullstack_compression_bad_hostname_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_unsecure_test.exe chttp2_fullstack_compression_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_compression_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_compression_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_compression_census_simple_request_unsecure_test.exe chttp2_fullstack_compression_channel_connectivity_unsecure_test.exe chttp2_fullstack_compression_default_host_unsecure_test.exe chttp2_fullstack_compression_disappearing_server_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_compression_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_compression_empty_batch_unsecure_test.exe chttp2_fullstack_compression_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_compression_invoke_large_request_unsecure_test.exe chttp2_fullstack_compression_max_concurrent_streams_unsecure_test.exe chttp2_fullstack_compression_max_message_length_unsecure_test.exe chttp2_fullstack_compression_no_op_unsecure_test.exe chttp2_fullstack_compression_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_compression_registered_call_unsecure_test.exe chttp2_fullstack_compression_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_payload_unsecure_test.exe chttp2_fullstack_compression_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_compressed_payload_unsecure_test.exe chttp2_fullstack_compression_request_with_flags_unsecure_test.exe chttp2_fullstack_compression_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_compression_request_with_payload_unsecure_test.exe chttp2_fullstack_compression_server_finishes_request_unsecure_test.exe chttp2_fullstack_compression_simple_delayed_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_unsecure_test.exe chttp2_fullstack_compression_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_fullstack_with_proxy_bad_hostname_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_after_invoke_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_before_invoke_unsecure_test.exe chttp2_fullstack_with_proxy_cancel_in_a_vacuum_unsecure_test.exe chttp2_fullstack_with_proxy_census_simple_request_unsecure_test.exe chttp2_fullstack_with_proxy_default_host_unsecure_test.exe chttp2_fullstack_with_proxy_disappearing_server_unsecure_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_fullstack_with_proxy_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_fullstack_with_proxy_empty_batch_unsecure_test.exe chttp2_fullstack_with_proxy_graceful_server_shutdown_unsecure_test.exe chttp2_fullstack_with_proxy_invoke_large_request_unsecure_test.exe chttp2_fullstack_with_proxy_max_message_length_unsecure_test.exe chttp2_fullstack_with_proxy_no_op_unsecure_test.exe chttp2_fullstack_with_proxy_ping_pong_streaming_unsecure_test.exe chttp2_fullstack_with_proxy_registered_call_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_fullstack_with_proxy_request_with_large_metadata_unsecure_test.exe chttp2_fullstack_with_proxy_request_with_payload_unsecure_test.exe chttp2_fullstack_with_proxy_server_finishes_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_delayed_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_request_unsecure_test.exe chttp2_fullstack_with_proxy_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_bad_hostname_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_census_simple_request_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_empty_batch_unsecure_test.exe chttp2_socket_pair_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_invoke_large_request_unsecure_test.exe chttp2_socket_pair_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_max_message_length_unsecure_test.exe chttp2_socket_pair_no_op_unsecure_test.exe chttp2_socket_pair_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_registered_call_unsecure_test.exe chttp2_socket_pair_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_request_with_flags_unsecure_test.exe chttp2_socket_pair_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_request_with_payload_unsecure_test.exe chttp2_socket_pair_server_finishes_request_unsecure_test.exe chttp2_socket_pair_simple_request_unsecure_test.exe chttp2_socket_pair_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_bad_hostname_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_census_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_empty_batch_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_invoke_large_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_max_message_length_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_no_op_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_registered_call_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_flags_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_request_with_payload_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_server_finishes_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_unsecure_test.exe chttp2_socket_pair_one_byte_at_a_time_simple_request_with_high_initial_sequence_number_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_bad_hostname_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_accept_and_writes_closed_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_after_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_before_invoke_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_cancel_in_a_vacuum_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_census_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_inflight_calls_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_early_server_shutdown_finishes_tags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_empty_batch_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_graceful_server_shutdown_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_invoke_large_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_concurrent_streams_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_max_message_length_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_no_op_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_ping_pong_streaming_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_registered_call_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_binary_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_response_with_trailing_metadata_and_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_compressed_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_flags_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_large_metadata_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_request_with_payload_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_server_finishes_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_unsecure_test.exe chttp2_socket_pair_with_grpc_trace_simple_request_with_high_initial_sequence_number_unsecure_test.exe connection_prefix_bad_client_test.exe initial_settings_frame_bad_client_test.exe 
 	echo All C tests built.
 
-buildtests_cxx: async_end2end_test.exe auth_property_iterator_test.exe channel_arguments_test.exe cli_call_test.exe client_crash_test_server.exe credentials_test.exe cxx_byte_buffer_test.exe cxx_slice_test.exe cxx_time_test.exe dynamic_thread_pool_test.exe end2end_test.exe fixed_size_thread_pool_test.exe generic_end2end_test.exe grpc_cli.exe mock_test.exe reconnect_interop_client.exe reconnect_interop_server.exe secure_auth_context_test.exe server_crash_test_client.exe status_test.exe thread_stress_test.exe zookeeper_test.exe 
+buildtests_cxx: async_end2end_test.exe auth_property_iterator_test.exe channel_arguments_test.exe cli_call_test.exe client_crash_test_server.exe credentials_test.exe cxx_byte_buffer_test.exe cxx_slice_test.exe cxx_string_ref_test.exe cxx_time_test.exe end2end_test.exe generic_end2end_test.exe grpc_cli.exe mock_test.exe reconnect_interop_client.exe reconnect_interop_server.exe secure_auth_context_test.exe server_crash_test_client.exe shutdown_test.exe status_test.exe thread_stress_test.exe zookeeper_test.exe 
 	echo All C++ tests built.
 
 
@@ -151,6 +151,14 @@ chttp2_stream_map_test: chttp2_stream_map_test.exe
 	echo Running chttp2_stream_map_test
 	$(OUT_DIR)\chttp2_stream_map_test.exe
 
+compression_test.exe: build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
+	echo Building compression_test
+	$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\compression\compression_test.c 
+	$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\compression_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\compression_test.obj 
+compression_test: compression_test.exe
+	echo Running compression_test
+	$(OUT_DIR)\compression_test.exe
+
 fling_client.exe: build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
 	echo Building fling_client
 	$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\fling\client.c 
@@ -175,6 +183,14 @@ gen_hpack_tables: gen_hpack_tables.exe
 	echo Running gen_hpack_tables
 	$(OUT_DIR)\gen_hpack_tables.exe
 
+gen_legal_metadata_characters.exe: $(OUT_DIR)
+	echo Building gen_legal_metadata_characters
+	$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\tools\codegen\core\gen_legal_metadata_characters.c 
+	$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\gen_legal_metadata_characters.exe" $(LIBS) $(OUT_DIR)\gen_legal_metadata_characters.obj 
+gen_legal_metadata_characters: gen_legal_metadata_characters.exe
+	echo Running gen_legal_metadata_characters
+	$(OUT_DIR)\gen_legal_metadata_characters.exe
+
 gpr_cmdline_test.exe: build_gpr_test_util build_gpr $(OUT_DIR)
 	echo Building gpr_cmdline_test
 	$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\support\cmdline_test.c 
@@ -319,6 +335,14 @@ grpc_byte_buffer_reader_test: grpc_byte_buffer_reader_test.exe
 	echo Running grpc_byte_buffer_reader_test
 	$(OUT_DIR)\grpc_byte_buffer_reader_test.exe
 
+grpc_channel_args_test.exe: build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
+	echo Building grpc_channel_args_test
+	$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\channel\channel_args_test.c 
+	$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\grpc_channel_args_test.exe" Debug\grpc_test_util.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(LIBS) $(OUT_DIR)\channel_args_test.obj 
+grpc_channel_args_test: grpc_channel_args_test.exe
+	echo Running grpc_channel_args_test
+	$(OUT_DIR)\grpc_channel_args_test.exe
+
 grpc_channel_stack_test.exe: build_grpc_test_util build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
 	echo Building grpc_channel_stack_test
 	$(CC) $(CFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\core\channel\channel_stack_test.c 
@@ -655,6 +679,14 @@ cxx_slice_test: cxx_slice_test.exe
 	echo Running cxx_slice_test
 	$(OUT_DIR)\cxx_slice_test.exe
 
+cxx_string_ref_test.exe: build_grpc++ $(OUT_DIR)
+	echo Building cxx_string_ref_test
+    $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\util\string_ref_test.cc 
+	$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\cxx_string_ref_test.exe" Debug\grpc++.lib $(CXX_LIBS) $(LIBS) $(OUT_DIR)\string_ref_test.obj 
+cxx_string_ref_test: cxx_string_ref_test.exe
+	echo Running cxx_string_ref_test
+	$(OUT_DIR)\cxx_string_ref_test.exe
+
 cxx_time_test.exe: build_grpc_test_util build_grpc++ build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
 	echo Building cxx_time_test
     $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\util\time_test.cc 
@@ -663,14 +695,6 @@ cxx_time_test: cxx_time_test.exe
 	echo Running cxx_time_test
 	$(OUT_DIR)\cxx_time_test.exe
 
-dynamic_thread_pool_test.exe: build_grpc_test_util build_grpc++ build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
-	echo Building dynamic_thread_pool_test
-    $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\server\dynamic_thread_pool_test.cc 
-	$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\dynamic_thread_pool_test.exe" Debug\grpc_test_util.lib Debug\grpc++.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(CXX_LIBS) $(LIBS) $(OUT_DIR)\dynamic_thread_pool_test.obj 
-dynamic_thread_pool_test: dynamic_thread_pool_test.exe
-	echo Running dynamic_thread_pool_test
-	$(OUT_DIR)\dynamic_thread_pool_test.exe
-
 end2end_test.exe: Debug\grpc++_test_util.lib build_grpc_test_util build_grpc++ build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
 	echo Building end2end_test
     $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\end2end\end2end_test.cc 
@@ -679,14 +703,6 @@ end2end_test: end2end_test.exe
 	echo Running end2end_test
 	$(OUT_DIR)\end2end_test.exe
 
-fixed_size_thread_pool_test.exe: build_grpc_test_util build_grpc++ build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
-	echo Building fixed_size_thread_pool_test
-    $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\server\fixed_size_thread_pool_test.cc 
-	$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\fixed_size_thread_pool_test.exe" Debug\grpc_test_util.lib Debug\grpc++.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(CXX_LIBS) $(LIBS) $(OUT_DIR)\fixed_size_thread_pool_test.obj 
-fixed_size_thread_pool_test: fixed_size_thread_pool_test.exe
-	echo Running fixed_size_thread_pool_test
-	$(OUT_DIR)\fixed_size_thread_pool_test.exe
-
 generic_end2end_test.exe: Debug\grpc++_test_util.lib build_grpc_test_util build_grpc++ build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
 	echo Building generic_end2end_test
     $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\end2end\generic_end2end_test.cc 
@@ -759,6 +775,14 @@ server_crash_test_client: server_crash_test_client.exe
 	echo Running server_crash_test_client
 	$(OUT_DIR)\server_crash_test_client.exe
 
+shutdown_test.exe: Debug\grpc++_test_util.lib build_grpc_test_util build_grpc++ build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
+	echo Building shutdown_test
+    $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\end2end\shutdown_test.cc 
+	$(LINK) $(LFLAGS) /OUT:"$(OUT_DIR)\shutdown_test.exe" Debug\grpc++_test_util.lib Debug\grpc_test_util.lib Debug\grpc++.lib Debug\grpc.lib Debug\gpr_test_util.lib Debug\gpr.lib $(CXX_LIBS) $(LIBS) $(OUT_DIR)\shutdown_test.obj 
+shutdown_test: shutdown_test.exe
+	echo Running shutdown_test
+	$(OUT_DIR)\shutdown_test.exe
+
 status_test.exe: build_grpc_test_util build_grpc++ build_grpc build_gpr_test_util build_gpr $(OUT_DIR)
 	echo Building status_test
     $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\util\status_test.cc 
@@ -4736,8 +4760,8 @@ build_grpc++_unsecure:
 
 Debug\interop_client_helper.lib: $(OUT_DIR)
 	echo Building interop_client_helper
-    $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\interop\client_helper.cc 
-	$(LIBTOOL) /OUT:"Debug\interop_client_helper.lib" $(OUT_DIR)\client_helper.obj 
+    $(CC) $(CXXFLAGS) /Fo:$(OUT_DIR)\ $(REPO_ROOT)\test\cpp\interop\client_helper.cc $(REPO_ROOT)\test\proto\messages.pb.cc $(REPO_ROOT)\test\proto\messages.grpc.pb.cc 
+	$(LIBTOOL) /OUT:"Debug\interop_client_helper.lib" $(OUT_DIR)\client_helper.obj $(OUT_DIR)\messages.pb.obj $(OUT_DIR)\messages.grpc.pb.obj 
 
 Debug\interop_client_main.lib: $(OUT_DIR)
 	echo Building interop_client_main
diff --git a/vsprojects/grpc++/grpc++.vcxproj b/vsprojects/grpc++/grpc++.vcxproj
index 929bc1500eae1f4eb60cc73374798b59b9f5924d..53930c1394352599641a97a0397403f43acbd7ad 100644
--- a/vsprojects/grpc++/grpc++.vcxproj
+++ b/vsprojects/grpc++/grpc++.vcxproj
@@ -213,25 +213,16 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\include\grpc++\async_generic_service.h" />
-    <ClInclude Include="..\..\include\grpc++\async_unary_call.h" />
-    <ClInclude Include="..\..\include\grpc++\auth_context.h" />
-    <ClInclude Include="..\..\include\grpc++\byte_buffer.h" />
-    <ClInclude Include="..\..\include\grpc++\channel_arguments.h" />
-    <ClInclude Include="..\..\include\grpc++\channel_interface.h" />
+    <ClInclude Include="..\..\include\grpc++\channel.h" />
     <ClInclude Include="..\..\include\grpc++\client_context.h" />
     <ClInclude Include="..\..\include\grpc++\completion_queue.h" />
-    <ClInclude Include="..\..\include\grpc++\config.h" />
-    <ClInclude Include="..\..\include\grpc++\config_protobuf.h" />
     <ClInclude Include="..\..\include\grpc++\create_channel.h" />
     <ClInclude Include="..\..\include\grpc++\credentials.h" />
-    <ClInclude Include="..\..\include\grpc++\dynamic_thread_pool.h" />
-    <ClInclude Include="..\..\include\grpc++\fixed_size_thread_pool.h" />
-    <ClInclude Include="..\..\include\grpc++\generic_stub.h" />
+    <ClInclude Include="..\..\include\grpc++\generic\async_generic_service.h" />
+    <ClInclude Include="..\..\include\grpc++\generic\generic_stub.h" />
     <ClInclude Include="..\..\include\grpc++\impl\call.h" />
     <ClInclude Include="..\..\include\grpc++\impl\client_unary_call.h" />
     <ClInclude Include="..\..\include\grpc++\impl\grpc_library.h" />
-    <ClInclude Include="..\..\include\grpc++\impl\internal_stub.h" />
     <ClInclude Include="..\..\include\grpc++\impl\proto_utils.h" />
     <ClInclude Include="..\..\include\grpc++\impl\rpc_method.h" />
     <ClInclude Include="..\..\include\grpc++\impl\rpc_service_method.h" />
@@ -247,20 +238,30 @@
     <ClInclude Include="..\..\include\grpc++\server_builder.h" />
     <ClInclude Include="..\..\include\grpc++\server_context.h" />
     <ClInclude Include="..\..\include\grpc++\server_credentials.h" />
-    <ClInclude Include="..\..\include\grpc++\slice.h" />
-    <ClInclude Include="..\..\include\grpc++\status.h" />
-    <ClInclude Include="..\..\include\grpc++\status_code_enum.h" />
-    <ClInclude Include="..\..\include\grpc++\stream.h" />
-    <ClInclude Include="..\..\include\grpc++\stub_options.h" />
-    <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h" />
-    <ClInclude Include="..\..\include\grpc++\time.h" />
+    <ClInclude Include="..\..\include\grpc++\support\async_stream.h" />
+    <ClInclude Include="..\..\include\grpc++\support\async_unary_call.h" />
+    <ClInclude Include="..\..\include\grpc++\support\auth_context.h" />
+    <ClInclude Include="..\..\include\grpc++\support\byte_buffer.h" />
+    <ClInclude Include="..\..\include\grpc++\support\channel_arguments.h" />
+    <ClInclude Include="..\..\include\grpc++\support\config.h" />
+    <ClInclude Include="..\..\include\grpc++\support\config_protobuf.h" />
+    <ClInclude Include="..\..\include\grpc++\support\slice.h" />
+    <ClInclude Include="..\..\include\grpc++\support\status.h" />
+    <ClInclude Include="..\..\include\grpc++\support\status_code_enum.h" />
+    <ClInclude Include="..\..\include\grpc++\support\string_ref.h" />
+    <ClInclude Include="..\..\include\grpc++\support\stub_options.h" />
+    <ClInclude Include="..\..\include\grpc++\support\sync_stream.h" />
+    <ClInclude Include="..\..\include\grpc++\support\time.h" />
   </ItemGroup>
   <ItemGroup>
     <ClInclude Include="..\..\src\cpp\client\secure_credentials.h" />
     <ClInclude Include="..\..\src\cpp\common\secure_auth_context.h" />
     <ClInclude Include="..\..\src\cpp\server\secure_server_credentials.h" />
-    <ClInclude Include="..\..\src\cpp\client\channel.h" />
+    <ClInclude Include="..\..\src\cpp\client\create_channel_internal.h" />
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h" />
+    <ClInclude Include="..\..\src\cpp\server\dynamic_thread_pool.h" />
+    <ClInclude Include="..\..\src\cpp\server\fixed_size_thread_pool.h" />
+    <ClInclude Include="..\..\src\cpp\server\thread_pool_interface.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\cpp\client\secure_channel_arguments.cc">
@@ -283,14 +284,14 @@
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\create_channel.cc">
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\client\create_channel_internal.cc">
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\credentials.cc">
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\generic_stub.cc">
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\insecure_credentials.cc">
     </ClCompile>
-    <ClCompile Include="..\..\src\cpp\client\internal_stub.cc">
-    </ClCompile>
     <ClCompile Include="..\..\src\cpp\common\call.cc">
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\common\completion_queue.cc">
@@ -323,6 +324,8 @@
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\util\status.cc">
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\util\string_ref.cc">
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\util\time.cc">
     </ClCompile>
   </ItemGroup>
diff --git a/vsprojects/grpc++/grpc++.vcxproj.filters b/vsprojects/grpc++/grpc++.vcxproj.filters
index 0408fb46a5c587561cbc3b98d8ad416e4591b1ae..6bc9ed64d2eed77bb88355bf01aaeabe3afa0d9e 100644
--- a/vsprojects/grpc++/grpc++.vcxproj.filters
+++ b/vsprojects/grpc++/grpc++.vcxproj.filters
@@ -31,6 +31,9 @@
     <ClCompile Include="..\..\src\cpp\client\create_channel.cc">
       <Filter>src\cpp\client</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\client\create_channel_internal.cc">
+      <Filter>src\cpp\client</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\credentials.cc">
       <Filter>src\cpp\client</Filter>
     </ClCompile>
@@ -40,9 +43,6 @@
     <ClCompile Include="..\..\src\cpp\client\insecure_credentials.cc">
       <Filter>src\cpp\client</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\cpp\client\internal_stub.cc">
-      <Filter>src\cpp\client</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\src\cpp\common\call.cc">
       <Filter>src\cpp\common</Filter>
     </ClCompile>
@@ -91,27 +91,15 @@
     <ClCompile Include="..\..\src\cpp\util\status.cc">
       <Filter>src\cpp\util</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\util\string_ref.cc">
+      <Filter>src\cpp\util</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\util\time.cc">
       <Filter>src\cpp\util</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\include\grpc++\async_generic_service.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\async_unary_call.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\auth_context.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\byte_buffer.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\channel_arguments.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\channel_interface.h">
+    <ClInclude Include="..\..\include\grpc++\channel.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
     <ClInclude Include="..\..\include\grpc++\client_context.h">
@@ -120,26 +108,17 @@
     <ClInclude Include="..\..\include\grpc++\completion_queue.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\config.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\config_protobuf.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\include\grpc++\create_channel.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
     <ClInclude Include="..\..\include\grpc++\credentials.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\dynamic_thread_pool.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\fixed_size_thread_pool.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\generic\async_generic_service.h">
+      <Filter>include\grpc++\generic</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\generic_stub.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\generic\generic_stub.h">
+      <Filter>include\grpc++\generic</Filter>
     </ClInclude>
     <ClInclude Include="..\..\include\grpc++\impl\call.h">
       <Filter>include\grpc++\impl</Filter>
@@ -150,9 +129,6 @@
     <ClInclude Include="..\..\include\grpc++\impl\grpc_library.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\impl\internal_stub.h">
-      <Filter>include\grpc++\impl</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\include\grpc++\impl\proto_utils.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
@@ -198,26 +174,47 @@
     <ClInclude Include="..\..\include\grpc++\server_credentials.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\slice.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\async_stream.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\status.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\async_unary_call.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\status_code_enum.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\auth_context.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\stream.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\byte_buffer.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\stub_options.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\channel_arguments.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\config.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\time.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\config_protobuf.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\slice.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\status.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\status_code_enum.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\string_ref.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\stub_options.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\sync_stream.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\time.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
@@ -230,12 +227,21 @@
     <ClInclude Include="..\..\src\cpp\server\secure_server_credentials.h">
       <Filter>src\cpp\server</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\src\cpp\client\channel.h">
+    <ClInclude Include="..\..\src\cpp\client\create_channel_internal.h">
       <Filter>src\cpp\client</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h">
       <Filter>src\cpp\common</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\cpp\server\dynamic_thread_pool.h">
+      <Filter>src\cpp\server</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\cpp\server\fixed_size_thread_pool.h">
+      <Filter>src\cpp\server</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\cpp\server\thread_pool_interface.h">
+      <Filter>src\cpp\server</Filter>
+    </ClInclude>
   </ItemGroup>
 
   <ItemGroup>
@@ -245,9 +251,15 @@
     <Filter Include="include\grpc++">
       <UniqueIdentifier>{784a0281-f547-aeb0-9f55-b26b7de9c769}</UniqueIdentifier>
     </Filter>
+    <Filter Include="include\grpc++\generic">
+      <UniqueIdentifier>{51dae921-3aa2-1976-2ee4-c5615de1af54}</UniqueIdentifier>
+    </Filter>
     <Filter Include="include\grpc++\impl">
       <UniqueIdentifier>{0da8cd95-314f-da1b-5ce7-7791a5be1f1a}</UniqueIdentifier>
     </Filter>
+    <Filter Include="include\grpc++\support">
+      <UniqueIdentifier>{a5c10dae-f715-2a30-1066-d22f8bc94cb2}</UniqueIdentifier>
+    </Filter>
     <Filter Include="src">
       <UniqueIdentifier>{328ff211-2886-406e-56f9-18ba1686f363}</UniqueIdentifier>
     </Filter>
diff --git a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
index 2ff252e04e7f6060734188f989445df0314052a7..12fa1b781cb61e53bb97c38ca7351c2e90bc1b22 100644
--- a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
+++ b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj
@@ -213,25 +213,16 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\include\grpc++\async_generic_service.h" />
-    <ClInclude Include="..\..\include\grpc++\async_unary_call.h" />
-    <ClInclude Include="..\..\include\grpc++\auth_context.h" />
-    <ClInclude Include="..\..\include\grpc++\byte_buffer.h" />
-    <ClInclude Include="..\..\include\grpc++\channel_arguments.h" />
-    <ClInclude Include="..\..\include\grpc++\channel_interface.h" />
+    <ClInclude Include="..\..\include\grpc++\channel.h" />
     <ClInclude Include="..\..\include\grpc++\client_context.h" />
     <ClInclude Include="..\..\include\grpc++\completion_queue.h" />
-    <ClInclude Include="..\..\include\grpc++\config.h" />
-    <ClInclude Include="..\..\include\grpc++\config_protobuf.h" />
     <ClInclude Include="..\..\include\grpc++\create_channel.h" />
     <ClInclude Include="..\..\include\grpc++\credentials.h" />
-    <ClInclude Include="..\..\include\grpc++\dynamic_thread_pool.h" />
-    <ClInclude Include="..\..\include\grpc++\fixed_size_thread_pool.h" />
-    <ClInclude Include="..\..\include\grpc++\generic_stub.h" />
+    <ClInclude Include="..\..\include\grpc++\generic\async_generic_service.h" />
+    <ClInclude Include="..\..\include\grpc++\generic\generic_stub.h" />
     <ClInclude Include="..\..\include\grpc++\impl\call.h" />
     <ClInclude Include="..\..\include\grpc++\impl\client_unary_call.h" />
     <ClInclude Include="..\..\include\grpc++\impl\grpc_library.h" />
-    <ClInclude Include="..\..\include\grpc++\impl\internal_stub.h" />
     <ClInclude Include="..\..\include\grpc++\impl\proto_utils.h" />
     <ClInclude Include="..\..\include\grpc++\impl\rpc_method.h" />
     <ClInclude Include="..\..\include\grpc++\impl\rpc_service_method.h" />
@@ -247,17 +238,27 @@
     <ClInclude Include="..\..\include\grpc++\server_builder.h" />
     <ClInclude Include="..\..\include\grpc++\server_context.h" />
     <ClInclude Include="..\..\include\grpc++\server_credentials.h" />
-    <ClInclude Include="..\..\include\grpc++\slice.h" />
-    <ClInclude Include="..\..\include\grpc++\status.h" />
-    <ClInclude Include="..\..\include\grpc++\status_code_enum.h" />
-    <ClInclude Include="..\..\include\grpc++\stream.h" />
-    <ClInclude Include="..\..\include\grpc++\stub_options.h" />
-    <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h" />
-    <ClInclude Include="..\..\include\grpc++\time.h" />
+    <ClInclude Include="..\..\include\grpc++\support\async_stream.h" />
+    <ClInclude Include="..\..\include\grpc++\support\async_unary_call.h" />
+    <ClInclude Include="..\..\include\grpc++\support\auth_context.h" />
+    <ClInclude Include="..\..\include\grpc++\support\byte_buffer.h" />
+    <ClInclude Include="..\..\include\grpc++\support\channel_arguments.h" />
+    <ClInclude Include="..\..\include\grpc++\support\config.h" />
+    <ClInclude Include="..\..\include\grpc++\support\config_protobuf.h" />
+    <ClInclude Include="..\..\include\grpc++\support\slice.h" />
+    <ClInclude Include="..\..\include\grpc++\support\status.h" />
+    <ClInclude Include="..\..\include\grpc++\support\status_code_enum.h" />
+    <ClInclude Include="..\..\include\grpc++\support\string_ref.h" />
+    <ClInclude Include="..\..\include\grpc++\support\stub_options.h" />
+    <ClInclude Include="..\..\include\grpc++\support\sync_stream.h" />
+    <ClInclude Include="..\..\include\grpc++\support\time.h" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\src\cpp\client\channel.h" />
+    <ClInclude Include="..\..\src\cpp\client\create_channel_internal.h" />
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h" />
+    <ClInclude Include="..\..\src\cpp\server\dynamic_thread_pool.h" />
+    <ClInclude Include="..\..\src\cpp\server\fixed_size_thread_pool.h" />
+    <ClInclude Include="..\..\src\cpp\server\thread_pool_interface.h" />
   </ItemGroup>
   <ItemGroup>
     <ClCompile Include="..\..\src\cpp\common\insecure_create_auth_context.cc">
@@ -270,14 +271,14 @@
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\create_channel.cc">
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\client\create_channel_internal.cc">
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\credentials.cc">
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\generic_stub.cc">
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\insecure_credentials.cc">
     </ClCompile>
-    <ClCompile Include="..\..\src\cpp\client\internal_stub.cc">
-    </ClCompile>
     <ClCompile Include="..\..\src\cpp\common\call.cc">
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\common\completion_queue.cc">
@@ -310,6 +311,8 @@
     </ClCompile>
     <ClCompile Include="..\..\src\cpp\util\status.cc">
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\util\string_ref.cc">
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\util\time.cc">
     </ClCompile>
   </ItemGroup>
diff --git a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
index b4fae7741ceb515c41490085294404b998a71a91..17d9d5332f0f9ce4852231e99f18f167889872b9 100644
--- a/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
+++ b/vsprojects/grpc++_unsecure/grpc++_unsecure.vcxproj.filters
@@ -16,6 +16,9 @@
     <ClCompile Include="..\..\src\cpp\client\create_channel.cc">
       <Filter>src\cpp\client</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\client\create_channel_internal.cc">
+      <Filter>src\cpp\client</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\client\credentials.cc">
       <Filter>src\cpp\client</Filter>
     </ClCompile>
@@ -25,9 +28,6 @@
     <ClCompile Include="..\..\src\cpp\client\insecure_credentials.cc">
       <Filter>src\cpp\client</Filter>
     </ClCompile>
-    <ClCompile Include="..\..\src\cpp\client\internal_stub.cc">
-      <Filter>src\cpp\client</Filter>
-    </ClCompile>
     <ClCompile Include="..\..\src\cpp\common\call.cc">
       <Filter>src\cpp\common</Filter>
     </ClCompile>
@@ -76,27 +76,15 @@
     <ClCompile Include="..\..\src\cpp\util\status.cc">
       <Filter>src\cpp\util</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\cpp\util\string_ref.cc">
+      <Filter>src\cpp\util</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\cpp\util\time.cc">
       <Filter>src\cpp\util</Filter>
     </ClCompile>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\include\grpc++\async_generic_service.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\async_unary_call.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\auth_context.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\byte_buffer.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\channel_arguments.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\channel_interface.h">
+    <ClInclude Include="..\..\include\grpc++\channel.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
     <ClInclude Include="..\..\include\grpc++\client_context.h">
@@ -105,26 +93,17 @@
     <ClInclude Include="..\..\include\grpc++\completion_queue.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\config.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\config_protobuf.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\include\grpc++\create_channel.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
     <ClInclude Include="..\..\include\grpc++\credentials.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\dynamic_thread_pool.h">
-      <Filter>include\grpc++</Filter>
-    </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\fixed_size_thread_pool.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\generic\async_generic_service.h">
+      <Filter>include\grpc++\generic</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\generic_stub.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\generic\generic_stub.h">
+      <Filter>include\grpc++\generic</Filter>
     </ClInclude>
     <ClInclude Include="..\..\include\grpc++\impl\call.h">
       <Filter>include\grpc++\impl</Filter>
@@ -135,9 +114,6 @@
     <ClInclude Include="..\..\include\grpc++\impl\grpc_library.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\impl\internal_stub.h">
-      <Filter>include\grpc++\impl</Filter>
-    </ClInclude>
     <ClInclude Include="..\..\include\grpc++\impl\proto_utils.h">
       <Filter>include\grpc++\impl</Filter>
     </ClInclude>
@@ -183,35 +159,65 @@
     <ClInclude Include="..\..\include\grpc++\server_credentials.h">
       <Filter>include\grpc++</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\slice.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\async_stream.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\status.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\async_unary_call.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\status_code_enum.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\auth_context.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\stream.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\byte_buffer.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\stub_options.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\channel_arguments.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\thread_pool_interface.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\config.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\include\grpc++\time.h">
-      <Filter>include\grpc++</Filter>
+    <ClInclude Include="..\..\include\grpc++\support\config_protobuf.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\slice.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\status.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\status_code_enum.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\string_ref.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\stub_options.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\sync_stream.h">
+      <Filter>include\grpc++\support</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\include\grpc++\support\time.h">
+      <Filter>include\grpc++\support</Filter>
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\src\cpp\client\channel.h">
+    <ClInclude Include="..\..\src\cpp\client\create_channel_internal.h">
       <Filter>src\cpp\client</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\cpp\common\create_auth_context.h">
       <Filter>src\cpp\common</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\cpp\server\dynamic_thread_pool.h">
+      <Filter>src\cpp\server</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\cpp\server\fixed_size_thread_pool.h">
+      <Filter>src\cpp\server</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\cpp\server\thread_pool_interface.h">
+      <Filter>src\cpp\server</Filter>
+    </ClInclude>
   </ItemGroup>
 
   <ItemGroup>
@@ -221,9 +227,15 @@
     <Filter Include="include\grpc++">
       <UniqueIdentifier>{eceb50c0-bb49-3812-b6bd-b0af6df81da7}</UniqueIdentifier>
     </Filter>
+    <Filter Include="include\grpc++\generic">
+      <UniqueIdentifier>{83717d3c-57d9-2bfa-ed9c-2b08f86da12b}</UniqueIdentifier>
+    </Filter>
     <Filter Include="include\grpc++\impl">
       <UniqueIdentifier>{dadc0002-f2ac-451b-a9b8-33b8de10b5fc}</UniqueIdentifier>
     </Filter>
+    <Filter Include="include\grpc++\support">
+      <UniqueIdentifier>{0ebf8008-80b9-d6da-e1dc-854bf1ec2195}</UniqueIdentifier>
+    </Filter>
     <Filter Include="src">
       <UniqueIdentifier>{cce6a85d-1111-3834-6825-31e170d93cff}</UniqueIdentifier>
     </Filter>
diff --git a/vsprojects/grpc.sln b/vsprojects/grpc.sln
index 0a9b5c28261d1f075d2d14d93ee4688ee4e6f77e..42ddef4568b3e44c0665dc0d91cfdf406e9f6476 100644
--- a/vsprojects/grpc.sln
+++ b/vsprojects/grpc.sln
@@ -52,15 +52,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "grpc_unsec
 		{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_zookeeper", "grpc_zookeeper\grpc_zookeeper.vcxproj", "{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}"
-	ProjectSection(myProperties) = preProject
-        	lib = "True"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
-		{29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
-	EndProjectSection
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc++", "grpc++\grpc++.vcxproj", "{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}"
 	ProjectSection(myProperties) = preProject
         	lib = "True"
@@ -187,22 +178,6 @@ Global
 		{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|Win32.Build.0 = Release-DLL|Win32
 		{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.ActiveCfg = Release-DLL|x64
 		{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release-DLL|x64.Build.0 = Release-DLL|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|x64.ActiveCfg = Debug|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|Win32.ActiveCfg = Release|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|x64.ActiveCfg = Release|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|Win32.Build.0 = Debug|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|x64.Build.0 = Debug|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|Win32.Build.0 = Release|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|x64.Build.0 = Release|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug-DLL|Win32.ActiveCfg = Debug|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug-DLL|Win32.Build.0 = Debug|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug-DLL|x64.ActiveCfg = Debug|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug-DLL|x64.Build.0 = Debug|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release-DLL|Win32.ActiveCfg = Release|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release-DLL|Win32.Build.0 = Release|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release-DLL|x64.ActiveCfg = Release|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release-DLL|x64.Build.0 = Release|x64
 		{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|Win32.ActiveCfg = Debug|Win32
 		{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Debug|x64.ActiveCfg = Debug|x64
 		{C187A093-A0FE-489D-A40A-6E33DE0F9FEB}.Release|Win32.ActiveCfg = Release|Win32
diff --git a/vsprojects/grpc/grpc.vcxproj b/vsprojects/grpc/grpc.vcxproj
index ebdc926ee7e7bc827c9a62fe0af41436abaa8f68..b17eea9235d82e37fe2d7baead3a94189403f11b 100644
--- a/vsprojects/grpc/grpc.vcxproj
+++ b/vsprojects/grpc/grpc.vcxproj
@@ -242,7 +242,7 @@
     <ClInclude Include="..\..\src\core\tsi\ssl_transport_security.h" />
     <ClInclude Include="..\..\src\core\tsi\transport_security.h" />
     <ClInclude Include="..\..\src\core\tsi\transport_security_interface.h" />
-    <ClInclude Include="..\..\src\core\channel\census_filter.h" />
+    <ClInclude Include="..\..\src\core\census\grpc_filter.h" />
     <ClInclude Include="..\..\src\core\channel\channel_args.h" />
     <ClInclude Include="..\..\src\core\channel\channel_stack.h" />
     <ClInclude Include="..\..\src\core\channel\client_channel.h" />
@@ -308,6 +308,8 @@
     <ClInclude Include="..\..\src\core\json\json_writer.h" />
     <ClInclude Include="..\..\src\core\profiling\timers.h" />
     <ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h" />
+    <ClInclude Include="..\..\src\core\statistics\census_interface.h" />
+    <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h" />
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h" />
     <ClInclude Include="..\..\src\core\surface\call.h" />
     <ClInclude Include="..\..\src\core\surface\channel.h" />
@@ -390,6 +392,8 @@
     </ClCompile>
     <ClCompile Include="..\..\src\core\census\grpc_context.c">
     </ClCompile>
+    <ClCompile Include="..\..\src\core\census\grpc_filter.c">
+    </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_stack.c">
diff --git a/vsprojects/grpc/grpc.vcxproj.filters b/vsprojects/grpc/grpc.vcxproj.filters
index baec0db4f92040ca429fa1a2df2f29cb1ab63517..a955e9e99348d1751343a40c94da99c4e12f2976 100644
--- a/vsprojects/grpc/grpc.vcxproj.filters
+++ b/vsprojects/grpc/grpc.vcxproj.filters
@@ -67,6 +67,9 @@
     <ClCompile Include="..\..\src\core\census\grpc_context.c">
       <Filter>src\core\census</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\core\census\grpc_filter.c">
+      <Filter>src\core\census</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
       <Filter>src\core\channel</Filter>
     </ClCompile>
@@ -482,8 +485,8 @@
     <ClInclude Include="..\..\src\core\tsi\transport_security_interface.h">
       <Filter>src\core\tsi</Filter>
     </ClInclude>
-    <ClInclude Include="..\..\src\core\channel\census_filter.h">
-      <Filter>src\core\channel</Filter>
+    <ClInclude Include="..\..\src\core\census\grpc_filter.h">
+      <Filter>src\core\census</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\core\channel\channel_args.h">
       <Filter>src\core\channel</Filter>
@@ -680,6 +683,12 @@
     <ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h">
       <Filter>src\core\profiling</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\core\statistics\census_interface.h">
+      <Filter>src\core\statistics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h">
+      <Filter>src\core\statistics</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h">
       <Filter>src\core\surface</Filter>
     </ClInclude>
@@ -842,6 +851,9 @@
     <Filter Include="src\core\security">
       <UniqueIdentifier>{1d850ac6-e639-4eab-5338-4ba40272fcc9}</UniqueIdentifier>
     </Filter>
+    <Filter Include="src\core\statistics">
+      <UniqueIdentifier>{0ef49896-2313-4a3f-1ce2-716fa0e5c6ca}</UniqueIdentifier>
+    </Filter>
     <Filter Include="src\core\surface">
       <UniqueIdentifier>{aeb18e82-5d25-0aad-8b02-a0a3470073ce}</UniqueIdentifier>
     </Filter>
diff --git a/vsprojects/grpc_csharp_ext.sln b/vsprojects/grpc_csharp_ext.sln
index aa41d87588194f8010d7518d80ffcd547f3be108..df84f3dc167ce37245a413005b66ad456e0a73e5 100644
--- a/vsprojects/grpc_csharp_ext.sln
+++ b/vsprojects/grpc_csharp_ext.sln
@@ -24,15 +24,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_unsecure", "grpc_unsec
 		{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
 	EndProjectSection
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_zookeeper", "grpc_zookeeper\grpc_zookeeper.vcxproj", "{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}"
-	ProjectSection(myProperties) = preProject
-        	lib = "True"
-	EndProjectSection
-	ProjectSection(ProjectDependencies) = postProject
-		{B23D3D1A-9438-4EDA-BEB6-9A0A03D17792} = {B23D3D1A-9438-4EDA-BEB6-9A0A03D17792}
-		{29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9}
-	EndProjectSection
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grpc_csharp_ext", "grpc_csharp_ext\grpc_csharp_ext.vcxproj", "{D64C6D63-4458-4A88-AB38-35678384A7E4}"
 	ProjectSection(myProperties) = preProject
         	lib = "True"
@@ -74,14 +65,6 @@ Global
 		{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|Win32.Build.0 = Release-DLL|Win32
 		{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|x64.ActiveCfg = Release-DLL|x64
 		{46CEDFFF-9692-456A-AA24-38B5D6BCF4C5}.Release|x64.Build.0 = Release-DLL|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|Win32.ActiveCfg = Debug|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|Win32.Build.0 = Debug|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|x64.ActiveCfg = Debug|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Debug|x64.Build.0 = Debug|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|Win32.ActiveCfg = Release|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|Win32.Build.0 = Release|Win32
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|x64.ActiveCfg = Release|x64
-		{F14EBEC1-DC43-45D3-8A7D-1A47072EFE50}.Release|x64.Build.0 = Release|x64
 		{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|Win32.ActiveCfg = Debug|Win32
 		{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|Win32.Build.0 = Debug|Win32
 		{D64C6D63-4458-4A88-AB38-35678384A7E4}.Debug|x64.ActiveCfg = Debug|x64
diff --git a/vsprojects/grpc_plugin_support/grpc_plugin_support.vcxproj b/vsprojects/grpc_plugin_support/grpc_plugin_support.vcxproj
index 444d796137e3c740909164f54252b2631b437b56..9f098d10a10fbe2f4fd002f102fffa291ce6ad91 100644
--- a/vsprojects/grpc_plugin_support/grpc_plugin_support.vcxproj
+++ b/vsprojects/grpc_plugin_support/grpc_plugin_support.vcxproj
@@ -122,8 +122,8 @@
     </Link>
   </ItemDefinitionGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\include\grpc++\config.h" />
-    <ClInclude Include="..\..\include\grpc++\config_protobuf.h" />
+    <ClInclude Include="..\..\include\grpc++\support\config.h" />
+    <ClInclude Include="..\..\include\grpc++\support\config_protobuf.h" />
     <ClInclude Include="..\..\src\compiler\config.h" />
     <ClInclude Include="..\..\src\compiler\cpp_generator.h" />
     <ClInclude Include="..\..\src\compiler\cpp_generator_helpers.h" />
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
index 1d60839b70290688ca374ca64a7b005fa9076736..a692c48f81d7f1ddfa5148994a7134acd66f7702 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj
@@ -225,7 +225,7 @@
     <ClInclude Include="..\..\include\grpc\census.h" />
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\src\core\channel\census_filter.h" />
+    <ClInclude Include="..\..\src\core\census\grpc_filter.h" />
     <ClInclude Include="..\..\src\core\channel\channel_args.h" />
     <ClInclude Include="..\..\src\core\channel\channel_stack.h" />
     <ClInclude Include="..\..\src\core\channel\client_channel.h" />
@@ -291,6 +291,8 @@
     <ClInclude Include="..\..\src\core\json\json_writer.h" />
     <ClInclude Include="..\..\src\core\profiling\timers.h" />
     <ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h" />
+    <ClInclude Include="..\..\src\core\statistics\census_interface.h" />
+    <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h" />
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h" />
     <ClInclude Include="..\..\src\core\surface\call.h" />
     <ClInclude Include="..\..\src\core\surface\channel.h" />
@@ -333,6 +335,8 @@
     </ClCompile>
     <ClCompile Include="..\..\src\core\census\grpc_context.c">
     </ClCompile>
+    <ClCompile Include="..\..\src\core\census\grpc_filter.c">
+    </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
     </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_stack.c">
diff --git a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
index cb9e8c2741bf8681318ddcd8e9cee75d853997f9..1c4036d464b03bcb7be68cc0dbffb412d7b76353 100644
--- a/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
+++ b/vsprojects/grpc_unsecure/grpc_unsecure.vcxproj.filters
@@ -7,6 +7,9 @@
     <ClCompile Include="..\..\src\core\census\grpc_context.c">
       <Filter>src\core\census</Filter>
     </ClCompile>
+    <ClCompile Include="..\..\src\core\census\grpc_filter.c">
+      <Filter>src\core\census</Filter>
+    </ClCompile>
     <ClCompile Include="..\..\src\core\channel\channel_args.c">
       <Filter>src\core\channel</Filter>
     </ClCompile>
@@ -380,8 +383,8 @@
     </ClInclude>
   </ItemGroup>
   <ItemGroup>
-    <ClInclude Include="..\..\src\core\channel\census_filter.h">
-      <Filter>src\core\channel</Filter>
+    <ClInclude Include="..\..\src\core\census\grpc_filter.h">
+      <Filter>src\core\census</Filter>
     </ClInclude>
     <ClInclude Include="..\..\src\core\channel\channel_args.h">
       <Filter>src\core\channel</Filter>
@@ -578,6 +581,12 @@
     <ClInclude Include="..\..\src\core\profiling\timers_preciseclock.h">
       <Filter>src\core\profiling</Filter>
     </ClInclude>
+    <ClInclude Include="..\..\src\core\statistics\census_interface.h">
+      <Filter>src\core\statistics</Filter>
+    </ClInclude>
+    <ClInclude Include="..\..\src\core\statistics\census_rpc_stats.h">
+      <Filter>src\core\statistics</Filter>
+    </ClInclude>
     <ClInclude Include="..\..\src\core\surface\byte_buffer_queue.h">
       <Filter>src\core\surface</Filter>
     </ClInclude>
@@ -737,6 +746,9 @@
     <Filter Include="src\core\profiling">
       <UniqueIdentifier>{7f91d9bf-c9de-835a-d74d-b16f843b89a9}</UniqueIdentifier>
     </Filter>
+    <Filter Include="src\core\statistics">
+      <UniqueIdentifier>{e084164c-a069-00e3-db35-4e0b1cd6f0b7}</UniqueIdentifier>
+    </Filter>
     <Filter Include="src\core\surface">
       <UniqueIdentifier>{6cd0127e-c24b-d43c-38f5-198db8d4322a}</UniqueIdentifier>
     </Filter>